满意答案
#include
struct student
{
char name[5];
int mat;
int eng;
int com;
int sum;
float ave;
}stu[5];
void range(struct student *p)
{
struct student change;
for(int m=1;m<5;m++)
{
if((*(p+m)).ave<(*(p+m-1)).ave)
{
change=*(p+m-1);
*(p+m-1)=*(p+m);
*(p+m)=change;
}
}
}
void main()
{
int i;
printf("请输入学生的姓名和数学、英语、计算机成绩:\n");
for(i=0;i<5;i++)
{
scanf("%s%d%d%d",&stu[i].name,&stu[i].mat,&stu[i].eng,&stu[i].com);
stu[i].sum=stu[i].mat+stu[i].eng+stu[i].com;
stu[i].ave=stu[i].sum/3.0;
}
printf("\n");
printf("Name math english computer average \n");
for(i=0;i<5;i++)
{
printf("%-10s%-10d%-10d%-10d%-10.1f\n",stu[i].name,stu[i].mat,stu[i].eng,stu[i].com,stu[i].ave);
}
range(stu);
printf("这些学生按平均成绩由小到大的排列顺序是:\n");
printf("Name math english computer average \n");
for(i=0;i<5;i++)
{
printf("%-10s%-10d%-10d%-10d%-10.1f\n",stu[i].name,stu[i].mat,stu[i].eng,stu[i].com,stu[i].ave);
}
printf("\n");
}
输入的时候 以空格隔开。
00分享举报