C语言从键盘输入某班学生某门课的成绩(例如计算机班人数最多不超过51人),当输入成绩为负值时,表示输入结束,试编程计算并输出其平均分,并输出实际输入的学生人数。
时间: 2023-06-23 21:08:08 浏览: 70
以下是实现该功能的 C 语言代码:
```c
#include <stdio.h>
int main() {
int count = 0;
float sum = 0, grade;
printf("请输入学生的成绩(负数表示结束):\n");
do {
printf("请输入第%d个学生的成绩:", count + 1);
scanf("%f", &grade);
if (grade >= 0) {
sum += grade;
count++;
}
} while (grade >= 0 && count < 51);
if (count == 0) {
printf("没有输入成绩\n");
} else {
printf("平均分为:%.2f\n", sum / count);
printf("实际输入的学生人数为:%d\n", count);
}
return 0;
}
```
该程序使用 do-while 循环来读取输入的成绩,每次读取后判断是否为负数,如果是则结束输入,否则将该成绩加到总分上,并将学生人数加1。同时,为了防止输入人数超过最大值,循环条件中还加了一个限制。最后,如果没有输入任何成绩,则输出相应提示,否则输出平均分和实际输入的学生人数。
相关问题
c语言从键盘输入某班学生某门课的成绩(每班人数最多不超过40人),当输入为负值时,表示输入结束,试编程将分数按从高到低顺序进行排序输出。
以下是一个示例代码:
```c
#include <stdio.h>
int main() {
int scores[40];
int num = 0;
// 从键盘读入分数,直到输入负值
while (1) {
printf("请输入第 %d 个学生的分数:", num + 1);
scanf("%d", &scores[num]);
if (scores[num] < 0) {
break;
}
num++;
}
// 冒泡排序,从高到低排序
for (int i = 0; i < num - 1; i++) {
for (int j = 0; j < num - i - 1; j++) {
if (scores[j] < scores[j+1]) {
int temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
// 输出排序后的分数
printf("排序后的分数为:");
for (int i = 0; i < num; i++) {
printf("%d ", scores[i]);
}
printf("\n");
return 0;
}
```
上面的代码使用了一个数组 `scores` 来存储输入的分数,使用变量 `num` 来记录输入了多少个分数。在读入分数的过程中,如果输入负值则退出循环。然后使用冒泡排序算法对分数进行排序,最后输出排序后的分数。
从键盘输入某班学生某门课的成绩已知每班人数最多不超过40人 具体人数由键盘输入成绩为整数是编程计算器平均分使用函数c语言
以下是使用 C 语言编写的计算平均分的程序:
```c
#include <stdio.h>
int main() {
int num, i;
float score, sum = 0, avg;
printf("请输入班级人数:");
scanf("%d", &num);
for (i = 1; i <= num; i++) {
printf("请输入第%d个学生的成绩:", i);
scanf("%f", &score);
sum += score;
}
avg = sum / num;
printf("平均分为:%.2f\n", avg);
return 0;
}
```
程序通过 `scanf()` 函数从键盘输入班级人数 `num` 和每个学生的成绩 `score`,然后使用 `for` 循环计算总分 `sum`,最后计算平均分 `avg` 并输出结果。其中 `%.2f` 表示输出浮点数时保留两位小数。