题目1190:大整数排序-----如果是二维字符数组可以用结构体和数组的结合;qsort()能AC,sort就WA,------注意cmp函数的编写,此处是减号

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;

struct string
{
int len;
char str[1005];
};

int cmp(const void *str1,const void *str2)
{
struct string *s1=(string*)str1;
struct string *s2=(string*)str2;
if (s1->len==s2->len)
{
int f=strcmp(s1->str,s2->str);
return f;
}
else return s1->len-s2->len;
}

int main()
{
int n;
struct string s[105];
while(scanf("%d",&n)!=EOF)
{
int i;
for(i=0;i<n;i++)
{
scanf("%s",s[i].str);
s[i].len=strlen(s[i].str);
}
qsort(s,n,sizeof(string),cmp);
for(i=0;i<n;i++)
printf("%s ",s[i].str);
}
return 0;
}