编写程序输入某班C语言考试的考试分数,该班人数未知,用-1作为结束标志,若输入大于100分,则提示重新输入,然后计算全班的最高分、最低分与平均分。
时间: 2023-03-01 12:11:30 浏览: 213
以下是 C 语言实现的代码:
```
#include <stdio.h>
int main() {
int score, count = 0, sum = 0, max = 0, min = 100;
while (1) {
printf("请输入第 %d 个学生的分数:", count + 1);
scanf("%d", &score);
if (score == -1) break;
if (score > 100) {
printf("分数不能大于 100 分,请重新输入\n");
continue;
}
count++;
sum += score;
if (score > max) max = score;
if (score < min) min = score;
}
if (count == 0) {
printf("没有输入任何分数\n");
} else {
printf("全班的最高分是:%d\n", max);
printf("全班的最低分是:%d\n", min);
printf("全班的平均分是:%.2f\n", (float)sum / count);
}
return 0;
}
```
相关问题
输入某班c语言考试成绩,该班人数未知,用 -1 作为结束标志,若输入大于 100 分或小于 0 分,则重新输入,然后计算全班的最高分、最低分与平均分。
### 回答1:
可以使用一个循环来不断输入每个学生的成绩,直到输入 -1 为止。在每次输入时,需要判断输入的成绩是否合法,即是否在 到 100 之间。如果不合法,则需要重新输入。同时,需要记录下每个学生的成绩,以便后续计算最高分、最低分和平均分。
在循环结束后,可以使用一个变量来记录全班的总分,以便计算平均分。同时,可以使用两个变量来记录最高分和最低分,初始值分别为第一个学生的成绩。在循环中,每次输入一个学生的成绩时,可以判断该成绩是否比当前的最高分或最低分更高或更低,如果是,则更新最高分或最低分的值。
最后,可以根据总分和学生人数计算平均分,并输出最高分、最低分和平均分的值。
### 回答2:
此题需要用到循环语句和条件判断语句。
首先,设定一个变量用于存储每个学生的成绩,定义一个计数器变量用于记录输入的学生数量,一个变量用于记录全班成绩之和。为了方便后续计算,设定一个变量存储最高分和最低分的值,初始化为0和100。
然后,通过循环语句,重复执行输入操作,直到出现结束标志-1为止。每输入一个成绩,判断其是否符合规定范围,如不符合则重新输入。若符合条件,则将该成绩加入全班成绩之和中,并判断该成绩是否为全班最高分或最低分,如是则更新最高或最低成绩的值。
当输入结束后,根据输入的总成绩和学生数量求出平均分。最后,将最高分、最低分、平均分以及学生数量一起输出即可。
以下是示例代码:
int score, sum = 0, count = 0;
int max = 0, min = 100;
while (true) {
printf("请输入学生成绩:");
scanf("%d", &score);
if (score == -1) break;
if (score < 0 || score > 100) {
printf("成绩不合法,请重新输入。\n");
continue;
}
count++; sum += score;
if (score > max) max = score;
if (score < min) min = score;
}
if (count == 0) {
printf("没有输入成绩!\n");
return 0;
}
printf("共有%d个学生,最高分:%d,最低分:%d,平均分:%d。\n", count, max, min, sum / count);
这样,输入任意数量的成绩都可以进行处理,得出一个包含最高分、最低分和平均分的输出结果。
### 回答3:
这道题目要求我们输入某班C语言考试成绩,可以利用循环结构以及条件语句来完成。
首先,我们需要定义变量,分别为当前输入的成绩,最高分、最低分以及总分。因为一开始我们不知道班级有多少人,我们可以用一个计数器来记录已输入的成绩数量。代码如下:
```
int score, max = 0, min = 100, sum = 0, count = 0;
```
然后,我们可以利用do...while循环来实现输入成绩,直到输入-1为止。在循环中,每次输入一个成绩,我们可以加入一个条件语句,判断输入的成绩是否合法(大于等于0且小于等于100),如果不合法则重新输入。
```
do {
printf("请输入一个成绩(-1结束):");
scanf("%d", &score);
if (score < 0 || score > 100) {
printf("输入不合法,请重新输入。\n");
continue;
}
if (score > max) {
max = score;
}
if (score < min) {
min = score;
}
sum += score;
count++;
} while (score != -1);
```
在循环中,我们利用if语句来判断当前输入的成绩是否为新的最高分或最低分(如果是,则更新最高分或最低分的值),以及累加总分。
最后,我们可以通过计算平均分来得出班级成绩的平均水平,并将最高分、最低分和平均分输出到屏幕上。
```
if (count > 0) {
float average = (float)sum / count;
printf("最高分:%d\n最低分:%d\n平均分:%.2f\n", max, min, average);
} else {
printf("未输入成绩。\n");
}
```
需要注意的是,如果班级没有输入任何成绩,那么计算平均分时会除以0,这是一种错误的操作。因此,在输出最终结果之前,我们需要加入一个条件判断,如果count为0,则输出“未输入成绩”。
C语言编程 输入某班C语言考试成绩,该班人数未知,用 -1 作为结束标志,若输入大于 100 分或小于 0 分,则重新输入,然后计算全班的最高分、最低分与平均分。
以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int score, count = 0, sum = 0, max = 0, min = 100;
// 循环输入成绩,直到输入 -1 结束
while (1) {
printf("请输入一个成绩:");
scanf("%d", &score);
// 判断是否结束
if (score == -1) {
break;
}
// 判断成绩是否合法
if (score < 0 || score > 100) {
printf("成绩不合法,请重新输入。\n");
continue;
}
// 统计信息
count++;
sum += score;
if (score > max) {
max = score;
}
if (score < min) {
min = score;
}
}
// 输出统计结果
if (count > 0) {
printf("最高分:%d\n", max);
printf("最低分:%d\n", min);
printf("平均分:%d\n", sum / count);
} else {
printf("没有输入成绩。\n");
}
return 0;
}
```
我们定义了四个变量:`score` 用于输入成绩,`count` 用于统计人数,`sum` 用于统计总分,`max` 和 `min` 分别用于记录最高分和最低分。
我们使用一个 `while` 循环来输入成绩,并在输入 `-1` 时结束循环。
在输入成绩时,我们先判断输入是否合法,若不合法则提示重新输入。
在统计信息时,我们对人数、总分、最高分和最低分进行了更新。
最后,我们输出统计结果。注意要先判断人数是否大于 0,否则输出没有输入成绩。