求教问题
查看原帖
求教问题
1089477
Gzqqq1234楼主2023/12/19 19:23

为什么我自己下载数据测试点#2看起来输出与要求一致但是过不了

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct number
{
    int length;
    char big[11];
}num;
int compare(const void* e1,const void* e2)
{
    num* p1=(num*)e1;
    num* p2=(num*)e2;
    if(p1->length==p2->length)
    {
        for(int i=0;i<p1->length;i++)
        {
            if(p1->big[i]>p2->big[i])
                return -1;
            else if(p1->big[i]<p2->big[i])
                return 1;
        }
    }
    else
    {
        if(p1->length>p2->length)
        {
            num x=*p1;
            *p1=*p2;
            *p2=x;
        }
        for(int i=0;i<p1->length;i++)
        {
            if(p1->big[i]>p2->big[i])
                return -1;
            else if(p1->big[i]<p2->big[i])
                return 1;
        }
        for(int i=p2->length-1;i>=0;i--)
        {
            if(p2->big[i]>p1->big[0])
                return 1;
            else if(p2->big[i]<p1->big[0])
                return -1;
        }
    }
    return 0;
}
int main()
{
    int n;
    scanf("%d",&n);
    num s[20];
    for(int i=0;i<n;i++)
    {
        scanf("%s",&s[i].big);
        s[i].length=strlen(s[i].big);
    }
    qsort(s,n,sizeof(s[0]),compare);
    for(int i=0;i<n;i++)
        printf("%s",s[i].big);
    return 0;
}
2023/12/19 19:23
加载中...