用2015年的c语言写出一下内容:有5个学生,每个学生的数据包括学号、姓名,4门课程,从键盘输入5个学生的数据,要求输出5个学生4门课程总成绩以及每门课程的平均分,以及每个学生未达到平均分的课程数和每门课没有达到平均分的人数
时间: 2023-12-15 21:27:36 浏览: 57
好的,以下是用2015年的C语言实现的代码:
```c
#include <stdio.h>
struct student {
int id;
char name[20];
int score[4];
};
int main() {
struct student stu[5];
int sum[4] = {0}; // 总成绩
float avg[4]; // 平均分
int lessThanAvg[4] = {0}; // 每门课未达到平均分的人数
int lessThanStu[5] = {0}; // 每个学生未达到平均分的课程数
// 输入学生数据
for (int i = 0; i < 5; i++) {
printf("请输入第%d个学生的学号、姓名和4门课程成绩:\n", i + 1);
scanf("%d %s %d %d %d %d", &stu[i].id, stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2], &stu[i].score[3]);
// 计算总成绩
for (int j = 0; j < 4; j++) {
sum[j] += stu[i].score[j];
}
}
// 计算平均分和未达到平均分的人数
for (int i = 0; i < 4; i++) {
avg[i] = sum[i] / 5.0f; // 计算平均分
for (int j = 0; j < 5; j++) {
if (stu[j].score[i] < avg[i]) {
lessThanAvg[i]++; // 未达到平均分的人数加1
lessThanStu[j]++; // 未达到平均分的课程数加1
}
}
}
// 输出结果
printf("学号\t姓名\t课程1\t课程2\t课程3\t课程4\t总成绩\n");
for (int i = 0; i < 5; i++) {
printf("%d\t%s\t%d\t%d\t%d\t%d\t%d\n", stu[i].id, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].score[3], stu[i].score[0] + stu[i].score[1] + stu[i].score[2] + stu[i].score[3]);
}
printf("平均分\t\t%.2f\t%.2f\t%.2f\t%.2f\n", avg[0], avg[1], avg[2], avg[3]);
printf("未达到平均分的人数\t%d\t%d\t%d\t%d\n", lessThanAvg[0], lessThanAvg[1], lessThanAvg[2], lessThanAvg[3]);
printf("未达到平均分的课程数\t%d\t%d\t%d\t%d\t%d\n", lessThanStu[0], lessThanStu[1], lessThanStu[2], lessThanStu[3], lessThanStu[4]);
return 0;
}
```
这个程序按照题目要求,输入5个学生的数据,计算每个学生的总成绩和每门课程的平均分,以及每个学生未达到平均分的课程数和每门课没有达到平均分的人数,并且输出这些结果。
阅读全文