编写程序,输入一批学生的成绩,遇负数表示输入结束,要求统计并输出各等级成绩的学生个数。成绩等级分为三级,分别为A(90~100)、P(60~89)、F(0~59)。
输入格式:
输入一批整数,以负数结束。
输出格式:
A等级数量,B等级数量,C等级数量
输入样例:
在这里给出一组输入。例如:
65 78 89 96 43 71 90 -1
输出样例:
在这里给出相应的输出。例如:
A等级2人
P等级4人
F等级1人
这段代码是用C语言编写的,目的是实现输入一批学生的成绩,并统计各等级成绩的学生人数。
代码的主要流程如下:
-
首先,我们定义了整型变量
score
和三个用于统计各等级学生人数的变量count_A
、count_P
、count_F
。 -
然后,使用
printf
函数打印提示信息,要求用户输入学生的成绩,以负数作为输入结束的标志。 -
接下来,使用
while
循环来读取用户输入的成绩。循环条件scanf("%d", &score) == 1 && score >= 0
的含义是,只有当成功读取一个整数且该整数大于等于0时,循环才会继续执行。 -
在循环体内,我们使用
if
和else if
条件语句来判断输入的成绩属于哪个等级,并相应地增加对应等级的学生人数计数器。 -
循环会继续进行,直到用户输入了一个负数,这时循环条件
score >= 0
不满足,循环终止。 -
最后,使用
printf
函数输出统计结果,分别输出 A 等级、P 等级和 F 等级的学生人数。
请注意,该代码假设用户输入的是有效的整数,并且输入不会超过 int
类型的范围。如果用户输入了非整数或超过 int
类型的范围,程序可能会产生错误。如果您希望处理这些异常情况,可以在代码中添加相应的输入验证和错误处理逻辑。
#include <stdio.h>
int main() {
int score;
int count_A = 0, count_P = 0, count_F = 0;
printf("请输入学生的成绩,以负数结束:\n");
while (scanf("%d", &score) == 1 && score >= 0) {
if (score >= 90 && score <= 100) {
count_A++;
} else if (score >= 60 && score <= 89) {
count_P++;
} else if (score >= 0 && score <= 59) {
count_F++;
}
}
printf("A等级%d人\n", count_A);
printf("P等级%d人\n", count_P);
printf("F等级%d人\n", count_F);
return 0;
}
这段代码实现了输入一批学生的成绩,并统计各等级成绩的学生人数。代码首先打印提示信息,要求用户输入学生的成绩,以负数结束。
然后,通过 while
循环读取用户输入的成绩。循环条件 scanf("%d", &score) == 1 && score >= 0
确保只有在成功读取一个整数且该整数大于等于0时,循环才会执行。
在循环体内,根据输入的成绩范围判断学生的等级,然后增加对应等级的学生人数计数器。
循环结束后,使用 printf
函数输出统计结果,分别输出 A 等级、P 等级和 F 等级的学生人数。
请注意,该代码假设用户输入的是有效的整数,并且输入不会超过 int
类型的范围。如果用户输入了非整数或超过 int
类型的范围,程序可能会产生错误。如果您希望处理这些异常情况,可以在代码中添加相应的输入验证和错误处理逻辑。