桐桐的学校刚刚举行了期中考试,桐桐所在的七年级一共考了五个科目:语文、数学、英语、政治和历史。现在所有成绩都已经出来,班主任找到了桐桐,想让桐桐帮忙计算班里所有同学的五科总成绩,并按照总成绩由高到低的顺序排名,如果两个学生盼总成绩相同,则学号小的排在前面。你能够编写程序帮助桐桐完成任务吗? 第1行:一个数n(1≤n
stu*p1=(stu*)a;
stu*p2=(stu*)b;
return p1->sumsum;
}//快速排序
void Input(struct stu a[],int n)
{
int i;
for (i=0;i
int i,j;
struct stu b;
for (i=0;i
for (j=0;j
if (a[j].num>a[j+1].num)
{
b.num=a[j+1].num;
a[j+1].num=a[j].num;
a[j].num=b.num;
}
}
}
}
for (i=0;i
int n;
struct stu a[105];
scanf("%d",&n);
Input(a,n);
s(a,n);
return 0;
}
不知道为什么上图cmp有时候失效 故使用下图代码
int cmp(const void *a,const void *b)
{
return ((struct stu *)b)->sum-((struct stu *)a)->sum;
}
|