你题目的解答代码如下:
#include<stdio.h>
#include<stdlib.h>
#define n 10
typedef struct student{
int cla;
char name[10];
int score[3];
float avg;
} stu;
void main()
{
int i,j,k;
stu a[n], buf;
for(i=0;i<n;i++)
{
scanf("%d%s",&a[i].cla,a[i].name);
int sum = 0;
for (j=0; j<3; ++j)
{
scanf("%d",&a[i].score[j]);
sum += a[i].score[j];
}
a[i].avg = sum/3.0;
}
for (i=0; i<n-1; ++i) //比较n-1轮
{
for (j=0; j<n-1-i; ++j) //每轮比较n-1-i次,
{
if (a[j].avg < a[j+1].avg)
{
buf = a[j];
a[j] = a[j+1];
a[j+1] = buf;
}
}
}
FILE *fp = fopen("./result.txt", "w");
for(i=0;i<n;i++)
{
printf("%d %s %d %d %d %.2f\n",a[i].cla,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].avg);
fprintf(fp,"%d %s %d %d %d %.2f\n",a[i].cla,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].avg);
}
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!