专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

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

发布时间:2011-06-28 13:33:14 文章来源:www.iduyao.cn 采编人员:星星草
杭电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 1005
struct 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];
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: