C 语言1.有 5 个学生,每个学生的数据包括:学号、姓名、3 门 课的成绩,从键盘输入 5 个学生数据,要求输出 3 门课总平 均成绩,以及最高分的学生的数据(包括学号、姓名、3 门 课的成绩、平均分数)。 要求用一个 input 函数输入 5 个学生数据;用一个 average 函数求总平均分;用 max 函数找出最高分数学生数据;总 平均分和最高分的学生都在主函数中输出。
时间: 2023-06-24 18:08:41 浏览: 108
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
以下是C语言代码实现:
```c
#include <stdio.h>
struct Student{
int id;
char name[20];
float scores[3];
float average;
};
void input(struct Student *stu){
printf("请输入学生编号:");
scanf("%d", &stu->id);
printf("请输入学生姓名:");
scanf("%s", stu->name);
printf("请输入三门课的成绩:");
scanf("%f%f%f", &stu->scores[0], &stu->scores[1], &stu->scores[2]);
stu->average = (stu->scores[0] + stu->scores[1] + stu->scores[2]) / 3.0;
}
float average(struct Student stu[], int n){
float sum = 0.0;
for(int i = 0; i < n; i++){
sum += stu[i].average;
}
return sum / n;
}
void max(struct Student stu[], int n, struct Student *max_stu){
float max_score = 0.0;
for(int i = 0; i < n; i++){
if(stu[i].average > max_score){
max_score = stu[i].average;
*max_stu = stu[i];
}
}
}
int main(){
struct Student stu[5];
struct Student max_stu;
for(int i = 0; i < 5; i++){
printf("请输入第%d个学生的信息:\n", i+1);
input(&stu[i]);
}
float avg = average(stu, 5);
printf("三门课的总平均分为:%.2f\n", avg);
max(stu, 5, &max_stu);
printf("最高分的学生信息为:\n");
printf("编号:%d\n姓名:%s\n成绩:%.2f %.2f %.2f\n平均分:%.2f\n",
max_stu.id, max_stu.name, max_stu.scores[0], max_stu.scores[1],
max_stu.scores[2], max_stu.average);
return 0;
}
```
程序运行示例:
```
请输入第1个学生的信息:
请输入学生编号:1
请输入学生姓名:Tom
请输入三门课的成绩:80 85 90
请输入第2个学生的信息:
请输入学生编号:2
请输入学生姓名:Jerry
请输入三门课的成绩:70 75 80
请输入第3个学生的信息:
请输入学生编号:3
请输入学生姓名:Mike
请输入三门课的成绩:90 85 95
请输入第4个学生的信息:
请输入学生编号:4
请输入学生姓名:Lucy
请输入三门课的成绩:85 90 95
请输入第5个学生的信息:
请输入学生编号:5
请输入学生姓名:Lily
请输入三门课的成绩:75 70 80
三门课的总平均分为:83.00
最高分的学生信息为:
编号:3
姓名:Mike
成绩:90.00 85.00 95.00
平均分:90.00
```
阅读全文