首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

杭电1236用qsort快排WA了,不知道哪里出错哪位高手能帮帮小弟我

2012-08-30 
杭电1236用qsort快排WA了,不知道哪里出错谁能帮帮我题目:http://acm.hdu.edu.cn/showproblem.php?pid1236

杭电1236用qsort快排WA了,不知道哪里出错谁能帮帮我
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1236

数据原因估计冒泡排序应该也能过,不过我不知道我的代码为什么会出错。。。
代码:

C/C++ code
#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;}


[解决办法]
char name[20];
=>
char name[21];

热点排行