有5个学生, 每个学生包含学号num, 姓名name, 三门课的成绩score[3];
从键盘获取所有的学生数据, 输出3门课的平均成绩, 以及最高分的学生数据。
#include<stdio.h>
typedef struct student
{
int num;
char name[20];
int score[3];
float ave;
}student;
student stu[20],tmp;
int i,j;
void input()
{
for (i = 0; i < 5; i++)
{
scanf("%d %s %d %d %d", &stu[i].num, &stu[i].name, &stu[i].score[1], &stu[i].score[2], &stu[i].score[3]);
}
}
void HighAve(student *stu)
{
for (i = 0; i < 5; i++)
{
stu[i].ave = (stu[i].score[1] + stu[i].score[1] + stu[i].score[1]) / 3;
printf("%lf\n", stu[i].ave);
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
if (stu[j].ave < stu[j + 1].ave)
{
tmp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = tmp;
}//使用平均成绩将学生信息进行排序
}
}
printf("%d %s" ,stu[0].num,stu[0].name);//输出平均成绩最高学生的信息
}
int main()
{
input();//输入学生信息
HighAve(stu);
return 0;
}