有n个学生,每个学生的数据包括学号(num)、姓名(name)、三门课的成绩(score[3])。从键盘输入学生的数据,要求计算并打印出每名学生的总成绩、平均成绩、每门课的总成绩。
时间: 2023-12-03 20:46:03 浏览: 73
学生信息管理系统,1、每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩。
可以使用结构体来存储每个学生的信息,然后通过循环遍历计算每个学生的总成绩、平均成绩、每门课的总成绩。下面是一份C语言代码示例:
```c
#include <stdio.h>
#define N 100 // 最大学生数
struct Student {
int num;
char name[20];
int score[3];
int total_score;
float average_score;
};
int main() {
struct Student students[N];
int n; // 学生数
printf("请输入学生数(不超过%d):", N);
scanf("%d", &n);
// 输入每个学生的信息
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i+1);
printf("学号:");
scanf("%d", &students[i].num);
printf("姓名:");
scanf("%s", students[i].name);
printf("成绩1:");
scanf("%d", &students[i].score[0]);
printf("成绩2:");
scanf("%d", &students[i].score[1]);
printf("成绩3:");
scanf("%d", &students[i].score[2]);
// 计算总成绩和平均成绩
students[i].total_score = students[i].score[0] + students[i].score[1] + students[i].score[2];
students[i].average_score = students[i].total_score / 3.0;
}
// 计算每门课的总成绩
int total_scores[3] = {0, 0, 0};
for (int i = 0; i < n; i++) {
total_scores[0] += students[i].score[0];
total_scores[1] += students[i].score[1];
total_scores[2] += students[i].score[2];
}
// 打印每个学生的信息
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t总成绩\t平均成绩\n");
for (int i = 0; i < n; i++) {
printf("%d\t%s\t%d\t%d\t%d\t%d\t%.2f\n", students[i].num, students[i].name,
students[i].score[0], students[i].score[1], students[i].score[2],
students[i].total_score, students[i].average_score);
}
// 打印每门课的总成绩
printf("总成绩\t%d\t%d\t%d\n", total_scores[0], total_scores[1], total_scores[2]);
return 0;
}
```
这份代码可以让用户先输入学生数,然后逐一输入每个学生的信息。最后会按照输入的顺序打印每个学生的信息,以及每门课的总成绩。
阅读全文