- 实验八
有50个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入50个学生数据,要求打印出每门课的平均成绩,以及三门课总分最高的学生的数据(包括学号、姓名、3门课的成绩,三门课的总分)。
/**要求打印出每门课的平均成绩,以及三门课总分最高的学生的数据**/
#include<stdio.h>
#include<stdlib.h>
struct stu
{
char name[11];
char num[11];
int gra1, gra2, gra3;
int sum1;
};
struct stu p[51];
struct stu t;
int main(void)
{
int i;
int n;
int j;
double ex1, ex2, ex3;
printf("Input n\n");
scanf("%d", &n);
for(i = 0; i < n; i++)
{
p[i].sum1 = 0;
scanf("%s %s %d %d %d", p[i].num, p[i].name, &p[i].gra1, &p[i].gra2, &p[i].gra3);
}
ex1 = 0;
ex2 = 0;
ex3 = 0;
for(i = 0; i < n; i++)
{
ex1 += p[i].gra1;
ex2 += p[i].gra2;
ex3 += p[i].gra3;
}
ex1 /= n;
ex2 /= n;
ex3 /= n;
for(i = 0; i < n; i++)
{
p[i].sum1 += (p[i].gra1 + p[i].gra2 + p[i].gra3);
}
for(i = 0; i < n - 1; i++)
{
for(j = 0; j < n - 1 - i; j++)
{
if(p[j].sum1 < p[j + 1].sum1)
{
t = p[j];
p[j] = p[j + 1];
p[j + 1] = t;
}
}
}
for(i = 0; i < n; i++)
{
printf("%s %s %d %d %d %d", p[i].num, p[i].name, p[i].gra1, p[i].gra2, p[i].gra3, p[i].sum1);
}
return 0;
}