旧的测试集过不了 求求大佬们了!!!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct{
char b[20];
} lin;
int cmp(const void *a, const void *b)
{
lin *pa = (lin *)a;
lin *pb = (lin *)b;
char *p = (char *)malloc(40);
char *q = (char *)malloc(40);
strcpy(p, pa->b);
strcat(p, pb->b);
strcpy(q, pb->b);
strcat(q, pa->b);
int result = -strcmp(p, q);
free(p);
free(q);
return result;
}
int main(){
int N,i=0,k=0;
long j=0;
scanf("%d",&N);
lin s[20];
while(i<N){
scanf("%s",s[i].b);
++i;
}
qsort(s,N,sizeof(lin),cmp);
for(i=0;i<N;++i){
while(s[i].b[k]!='\0'){
j*=10;
j+=s[i].b[k]-'0';
k++;
}
k=0;
}
printf("%ld",j);
return 0;
}
谢谢大佬们了!!!