【发布时间】:2022-11-21 10:54:54
【问题描述】:
我要解决的问题是“从键盘输入参加考试的学生人数,然后输入所有参加考试的学生的ID。程序应该将学生分为三组: ID 以数字 0、1 和 2 结尾的学生、ID 以数字 3、4、5 结尾的学生以及 ID 以数字 6、7、8、9 结尾的学生。程序应打印以下 ID每个组,按照输入的顺序排列。最多可以输入 1000 名学生。”。
我能想出的代码是
#include <stdio.h>
int main() {
int n,br,gr1,gr2,gr3;
scanf("%d",&n);
for (int i = 0; i < n; ++i) {
scanf("%d", &br);
if (br % 10 == 0 || br % 10 == 1 || br % 10 == 2) {
gr1 = br;
} else if (br % 10 == 3 || br % 10 == 4 || br % 10 == 5) {
gr2 = br;
} else if (br % 10 == 6 || br % 10 == 7 || br % 10 == 8 || br % 10 == 9) {
gr3 = br;
}
}
printf("Grupa 1\n%d\n",gr1);
printf("Grupa 2\n%d\n",gr2);
printf("Grupa 1\n%d\n",gr3);
return 0;
}
不是打印所有 ID 并将它们分类到组中,而是仅打印最后输入的编号和组编号。 我绝不是一个经验丰富的程序员,所以我不能真正说出我写这篇文章的方式有什么问题或如何解决它。如果你能指导我完成我将不胜感激
【问题讨论】:
-
正确缩进代码。您的
if语句不在for循环内。