用C语言实现有5个学生每个学生的数据包括学号、姓名、3门课的成绩从键盘输人5个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数。 要求:用三个函数实现
时间: 2024-01-06 17:06:41 浏览: 81
```c
#include <stdio.h>
#include <string.h>
struct Student {
int num;
char name[20];
double score[3];
};
// 输入学生数据
void input(struct Student *stu) {
for (int i = 0; i < 5; i++) {
printf("请输入第%d个学生的学号:", i + 1);
scanf("%d", &stu[i].num);
printf("请输入第%d个学生的姓名:", i + 1);
scanf("%s", stu[i].name);
printf("请输入第%d个学生的3门课成绩:", i + 1);
for (int j = 0; j < 3; j++) {
scanf("%lf", &stu[i].score[j]);
}
}
}
// 计算平均成绩
void calculateAverage(struct Student *stu) {
double sum;
for (int i = 0; i < 5; i++) {
sum = 0;
for (int j = 0; j < 3; j++) {
sum += stu[i].score[j];
}
printf("第%d个学生的平均成绩为:%lf\n", i + 1, sum / 3);
}
}
// 找出最高分学生的数据
void findMaxScoreStudent(struct Student *stu) {
double max = 0;
int index;
for (int i = 0; i < 5; i++) {
double sum = 0;
for (int j = 0; j < 3; j++) {
sum += stu[i].score[j];
}
if (sum > max) {
max = sum;
index = i;
}
}
printf("最高分学生的学号:%d\n", stu[index].num);
printf("最高分学生的姓名:%s\n", stu[index].name);
printf("最高分学生的3门课成绩:%.2lf, %.2lf, %.2lf\n", stu[index].score[0], stu[index].score[1], stu[index].score[2]);
printf("最高分学生的平均分数:%.2lf\n", max / 3);
}
int main() {
struct Student stu[5];
input(stu);
calculateAverage(stu);
findMaxScoreStudent(stu);
return 0;
}
```
阅读全文