回复 18楼 maotai
这组数据,你测试下:输入:
3
314
3143
31431
你的程序输出:
314314331431

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧


程序代码:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int NUM_comp(char *q,char *p)
{
int i=0;
while(*(q+i) != '\0' && *(p+i) != '\0' && *(q+i) == *(p+i))i++;
if( *(q+i) != '\0' && *(p+i) != '\0' && *(q+i) != *(p+i) )
return (-(*(q+i)-*(p+i)));
if( *(q+i) == '\0' && *(p+i) != '\0' )
return NUM_comp((char *)q, (char *)(p+i));
if( *(q+i) != '\0' && *(p+i) == '\0' )
return NUM_comp((char *)(q+i),(char *)p);
if( *(q+i) == '\0' && *(p+i) == '\0' )
return 0;
}
int main()
{
int n, i;
char s[1000][11];
while (scanf("%d", &n) != EOF)
{
for (i = 0; i < n; ++i) scanf("%s", s[i]);
qsort(s, n, sizeof(s[0]), NUM_comp);
for (i = 0; i < n; ++i) printf("%s ", s[i]);
}
return 0;
}



