高手请教一下C语言,要求用结构体数据,有追加,谢谢la

2025-04-11 03:31:31
推荐回答(1个)
回答1:

struct student_s
{
char num[20];
char name[20];
float score[3];
float avg;
}student[10];
void input()
{
for (int i=0;i<10;i++)
{
printf("第%d个学生姓名:",i+1);
scanf("%s",student[i].name);
printf("第%d个学生学号:",i+1);
scanf("%s",student[i].num);
printf("第%d个三科成绩(以逗号隔开):",i+1);
scanf("%f,%f,%f",&student[i].score[0],&student[i].score[1], &student[i].score[2]);
printf("\n");
}
}
float average() // 求每个学生平均成绩,并返回总平均分
{
for (int i=0;i<10;i++) // 求每个学生平均成绩
{
student[i].avg = (student[i].score[0]+student[i].score[1]+student[i].score[2])/3;
}
float total=0;
for (int i = 0;i<10;i++) // 求总分
{
total+=student[i].avg;
}
return total/10;
}
int max() // 求最高分学生的数据,返回学生编号
{
float max_avg=0;
int max_num=0;
for (int i=0;i<10;i++)
{
if (max_avg {
max_avg = student[i].avg;
max_num = i;
}
}
return max_num;
}
int main()
{
input();
float avg = average();
printf("总平均成绩:%.2f 最高分同学是:%s\n",avg,student[max()].name);
}