编写一个c语言程序,实现从键盘输入3个学生数据(每个学生的数据包括学号、姓名、2门课程成绩的),输出每个学生2门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、2门课的成绩、平均分数)。
时间: 2023-12-15 20:01:03 浏览: 405
好的,以下是 C 语言实现的代码:
```c
#include <stdio.h>
// 定义一个学生结构体
struct Student {
char id[20];
char name[20];
float score1;
float score2;
};
int main() {
// 创建一个学生数组,用于存储学生信息
struct Student students[3];
// 从键盘输入3个学生数据
for (int i = 0; i < 3; i++) {
printf("请输入第%d个学生的学号:", i + 1);
scanf("%s", students[i].id);
printf("请输入第%d个学生的姓名:", i + 1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的第1门课程成绩:", i + 1);
scanf("%f", &students[i].score1);
printf("请输入第%d个学生的第2门课程成绩:", i + 1);
scanf("%f", &students[i].score2);
}
// 计算每个学生2门课总平均成绩,并输出
for (int i = 0; i < 3; i++) {
float average = (students[i].score1 + students[i].score2) / 2;
printf("%s的平均分数为:%.2f\n", students[i].name, average);
}
// 找出最高分的学生,并输出其数据
float max_average = 0;
struct Student max_student;
for (int i = 0; i < 3; i++) {
float average = (students[i].score1 + students[i].score2) / 2;
if (average > max_average) {
max_average = average;
max_student = students[i];
}
}
printf("平均分数最高的学生是:\n");
printf("学号:%s\n", max_student.id);
printf("姓名:%s\n", max_student.name);
printf("第1门课程成绩:%.2f\n", max_student.score1);
printf("第2门课程成绩:%.2f\n", max_student.score2);
printf("平均分数:%.2f\n", max_average);
return 0;
}
```
你可以将以上代码保存为 .c 文件并编译运行,按照提示输入数据,程序将会输出每个学生的平均分数和平均分数最高的学生的数据。
阅读全文