您的位置:首页 > 其它

online_judge_1061

2015-03-23 21:02 99 查看
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Stu
{
char name[101];
int grade;
int age;
}Stu;
int cmp(const void *a,const void *b)
{
if(((Stu *)a)->grade!=((Stu *)b)->grade)
return ((Stu *)a)->grade-((Stu *)b)->grade;
else if(strcmp(((Stu *)a)->name,((Stu *)b)->name)!=0)
return strcmp(((Stu *)a)->name,((Stu *)b)->name);
else return ((Stu *)a)->age-((Stu *)b)->age;
}
int main()
{
int n,i;
Stu *s;
while(~scanf("%d",&n))
{
s=(Stu *)malloc(n*sizeof(Stu));
for(i=0;i<n;i++)
scanf("%s%d%d",s[i].name,&s[i].age,&s[i].grade);
qsort(s,n,sizeof(Stu),cmp);
for(i=0;i<n;i++)
printf("%s %d %d\n",s[i].name,s[i].age,s[i].grade);
free(s);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: