```c
include include define N 3 struct stu { int num; // 学号 char name; // 姓名 int score; // 成绩1和成绩2 }; void input(struct stu *p) { for (int i = 0; i < N; ++i) { printf("请输入学号: "); scanf("%d", &p[i].num); printf("请输入姓名: "); scanf("%s", p[i].name); for (int j = 0; j < 2; ++j) { printf("请输入score%d: ", j + 1); scanf("%d", &p[i].score[j]); } } } float average(struct stu *p) { float sum = 0; for (int i = 0; i < N; ++i) { sum += p[i].score + p[i].score; } return sum / (2 * N); } void max_student(struct stu *p) { float max_avg = 0; int max_index = 0; for (int i = 1; i < N; ++i) { float avg = average(&p[i]); if (avg > max_avg) { max_avg = avg; max_index = i; } } printf("最高分的学生信息:\n"); printf("学号: %d\n", p[max_index].num); printf("姓名: %s\n", p[max_index].name); printf("成绩1: %d\n", p[max_index].score); printf("成绩2: %d\n", p[max_index].score); printf("平均成绩: %.2f\n", max_avg); } int main() { struct stu students[N]; input(students); float avg; for (int i = 0; i < N; ++i) { avg = average(&students[i]); printf("学生%d的平均成绩: %.2f\n", i + 1, avg); } max_student(students); return 0; } ``` 代码说明: 定义了一个结构体`struct stu`,包含学号、姓名和两门课程的分数。 `input`函数用于从键盘输入3名学生的数据。 `average`函数计算每个学生的平均成绩。 `max_student`函数找出平均成绩最高的学生,并输出其信息。 `main`函数调用上述函数,完成输入、计算和输出。 使用方法: 1. 编译并运行程序。 2. 按照提示输入3名学生的学号、姓名和两门课程的成绩。 3. 程序将输出每个学生的平均成绩和最高分学生的信息。结构体定义:
输入函数:
平均成绩计算函数:
最高分学生查找函数:
主函数: