输入多个学生某一科的成绩c语言
时间: 2023-09-07 09:12:00 浏览: 70
好的,我可以通过以下代码来实现:
```
#include <stdio.h>
int main() {
int num;
printf("请输入学生人数:");
scanf("%d", &num);
float scores[num];
for (int i = 0; i < num; i++) {
printf("请输入第%d个学生的成绩:", i + 1);
scanf("%f", &scores[i]);
}
printf("学生的成绩为:\n");
for (int i = 0; i < num; i++) {
printf("第%d个学生的成绩为%.2f\n", i + 1, scores[i]);
}
return 0;
}
```
以上代码可以让用户输入学生的人数,然后依次输入每个学生的成绩,并将这些成绩存储在一个数组中。最后,程序会输出每个学生的成绩。在这个例子中,我们使用了一个 float 类型的数组来存储成绩,使用 for 循环来遍历数组并读取/输出每个元素。
相关问题
c语言怎么输入多个学生的成绩
在C语言中,为了输入多个学生的成绩,你可以使用循环结构来读取每个学生的成绩,直到用户表示结束。以下是一个简单的示例,使用`while`循环:
```c
#include <stdio.h>
#define MAX_STUDENTS 10 // 定义最大学生数
int main() {
int num_students, score;
char done;
printf("请输入学生人数(最多 %d 人):", MAX_STUDENTS);
scanf("%d", &num_students);
// 初始化表示是否完成输入的标志
done = 'n';
while (done != 'y') { // 只要用户未输入'y'表示完成
for (int i = 1; i <= num_students && i > 0; i++) {
printf("请输入第 %d 位同学的成绩:", i);
scanf("%d", &score);
printf("学生成绩: %d\n", score); // 打印输入的成绩
}
// 询问用户是否还有更多学生
printf("是否还要输入其他学生的成绩?(y/n): ");
getchar(); // 清除缓冲区,防止上一行的'\n'影响后续输入
scanf(" %c", &done); // 使用空格去除前导字符
}
return 0;
}
```
在这个程序里,用户会被提示输入学生人数,然后依次输入每位学生的成绩,直到他们输入'y'表示所有学生都已输入完毕。
假设多名学生参与某门课程期末考核,考核结束后从键盘输入这若干个学生的成绩, 当成绩小于0时结束输入,编程统计出学生的人数,并计算出这多名学生的平均成绩 C语言
在C语言中,你可以使用循环结构(如`while`或`do...while`)结合数组或动态内存分配来实现这个功能。这里是一个简单的示例,假设我们用一维数组存储成绩:
```c
#include <stdio.h>
int main() {
int num_students = 0; // 学生人数
double total_score = 0.0; // 总分
double current_score;
printf("请输入学生成绩(小于0退出):\n");
do {
scanf("%lf", ¤t_score);
if (current_score >= 0) { // 只统计正分数
num_students++;
total_score += current_score;
}
} while (current_score >= 0);
// 计算平均成绩
if (num_students > 0) {
double average_score = total_score / num_students;
printf("共有%d名学生,平均成绩为%.2f。\n", num_students, average_score);
} else {
printf("没有输入有效成绩。\n");
}
return 0;
}
```
在这个程序中,用户持续输入成绩,直到输入负数才停止。然后程序统计正分数的学生人数和总分,最后除以人数得到平均成绩。
阅读全文