杭电1236用qsort快排WA了,不知道哪里出错谁能帮帮我
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1236
数据原因估计冒泡排序应该也能过,不过我不知道我的代码为什么会出错。。。
代码:
#include<stdio.h>#include<string.h>#include<stdlib.h>#define MAX 1005struct STU{ char name[20]; int m; int num[11]; int sum;}stu[MAX];int cmp(const void *a,const void *b){ struct STU *c=(struct STU *)a; struct STU *d=(struct STU *)b; if(c->sum!=d->sum) {return (d->sum-c->sum);} else {return (strcmp(c->name,d->name)>0)?1:-1;}}int main(){ int N,M,G,score[11],i,j,n; while(scanf("%d",&N)==1,N) { scanf("%d%d",&M,&G); for(i=1;i<=M;i++) {scanf("%d",&score[i]);} n=0; for(i=1;i<=N;i++) { scanf("%s %d",&stu[i].name,&stu[i].m); stu[i].sum=0; for(j=1;j<=stu[i].m;j++) { scanf("%d",&stu[i].num[j]); stu[i].sum+=score[stu[i].num[j]]; } if(stu[i].sum>=G) {n++;} } qsort(stu+1,N,sizeof(stu[0]),cmp); printf("%d\n",n); for(i=1;i<=n;i++) {printf("%s %d\n",stu[i].name,stu[i].sum);} } return 0;}