#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 50
#define MAX_NAME_LENGTH 20
struct student {
char id[10];
char name[MAX_NAME_LENGTH];
char sex[5];
char birthdate[20];
float scores[4];
float avg_score;
};
void input(struct student *a) {
printf("请输入学生的信息:\n");
printf("学号:");
scanf("%s", a->id);
printf("姓名:");
scanf("%s", a->name);
printf("性别:");
scanf("%s", a->sex);
printf("出生日期:");
scanf("%s", a->birthdate);
printf("四门课程成绩:");
for (int i = 0; i < 4; i++) {
scanf("%f", &(a->scores[i]));
}
a->avg_score = (a->scores[0] + a->scores[1] + a->scores[2] + a->scores[3]) / 4;
}
void output(struct student a) {
printf("学号:%s,姓名:%s,性别:%s,出生日期:%s,四门课程成绩:%.2f, %.2f, %.2f, %.2f,平均分:%.2f\n",
a.id, a.name, a.sex, a.birthdate, a.scores[0], a.scores[1], a.scores[2], a.scores[3], a.avg_score);
}
void input_array(struct student a[], int n) {
for (int i = 0; i < n; i++) {
input(&(a[i]));
}
}
void output_array(struct student a[], int n) {
for (int i = 0; i < n; i++) {
output(a[i]);
}
}
int main() {
int n;
printf("请输入学生人数:");
scanf("%d", &n);
struct student students[MAX_STUDENTS];
input_array(students, n);
float max_avg_score = 0;
int max_index = 0;
for (int i = 0; i < n; i++) {
if (students[i].avg_score > max_avg_score) {
max_avg_score = students[i].avg_score;
max_index = i;
}
}
printf("平均分最高的学生信息如下:\n");
output(students[max_index]);
return 0;
}