C语言数组冒泡排序法题目求解

在一个二维数组中存放5个人的四门课成绩,计算个人的总成绩,并且按个人的总成绩排序,讲结果在屏幕上显示出来。初表如下
Acad name math C VC ASP total
---------------------------------------
5001 zhang 85 82 75 66
5002 liu 75 85 92 78
5003 li 66 88 93 85
5004 huang 82 72 80 77
5005 wang 92 75 73 83

#include <stdio.h>
struct Student
{
char num[10];
char name[10];
int score[4];
};
main()
{
struct Student exc,stu[5]={{"5001","zhang",85,82,75,66,},
{"5002","liu",75,85,92,78},{"5003","li",66,88,93,85},
{"5004","huang",82,72,80,77},{"5005","wang",92,75,73,83}};
int a,all[5]={0},i,j;
for(i=0;i<5;i++)
for(j=0;j<4;j++)
all[i]+=stu[i].score[j];
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(all[j]<all[j+1])
{
exc=stu[j];
stu[j]=stu[j+1];
stu[j+1]=exc;
a=all[j];
all[j]=all[j+1];
all[j+1]=a;
}
printf("按总分降序排列如下:\n");
for(i=0;i<5;i++)
{
printf("%s %-6s ",stu[i].num,stu[i].name);
for(j=0;j<4;j++)
printf("%d ",stu[i].score[j]);
printf("%d \n",all[i]);
};
}
温馨提示:答案为网友推荐,仅供参考
相似回答