c语言定义结构体数组,存储学生的学号、姓名、3门课程的成绩和平均成绩,输入10个学生的学号、姓名和3门课的成绩,计算出其平均成绩,输出每位学生的学号、姓名、3门课程的成绩和平均成绩,并且输出平均成绩最高的学生的学号、姓名和平均成绩。
时间: 2024-06-17 11:06:36 浏览: 97
要定义一个包含学号、姓名、3门课程成绩和平均成绩的结构体,可以使用以下代码:
```c
struct student {
int id;
char name[20];
float score;
float average;
};
```
然后我们可以定义一个结构体数组,存储10个学生的信息:
```c
struct student stu[10];
```
接下来,我们可以用循环输入每位学生的信息,并计算其平均成绩:
```c
for (int i = 0; i < 10; i++) {
printf("请输入第%d个学生的学号、姓名和3门课程的成绩:\n", i + 1);
scanf("%d %s %f %f %f", &stu[i].id, stu[i].name, &stu[i].score, &stu[i].score, &stu[i].score);
stu[i].average = (stu[i].score + stu[i].score + stu[i].score) / 3.0;
}
```
接着,我们可以用循环输出每位学生的信息:
```c
for (int i = 0; i < 10; i++) {
printf("学号:%d,姓名:%s,三门课程成绩:%.2f %.2f %.2f,平均成绩:%.2f\n", stu[i].id, stu[i].name, stu[i].score, stu[i].score, stu[i].score, stu[i].average);
}
```
最后,我们可以遍历结构体数组,找到平均成绩最高的学生,并输出其学号、姓名和平均成绩:
```c
float max_average = 0;
int max_index = 0;
for (int i = 0; i < 10; i++) {
if (stu[i].average > max_average) {
max_average = stu[i].average;
max_index = i;
}
}
printf("平均成绩最高的学生是:学号:%d,姓名:%s,平均成绩:%.2f\n", stu[max_index].id, stu[max_index].name, stu[max_index].average);
```
阅读全文