题解 | #字符串排序#
字符串排序
http://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723
int compare(char *s1,char *s2)
{
int len=strlen(s1)>strlen(s2)?strlen(s2):strlen(s1);
for(int i=0;i<len;i++)
{
if(s1[i]>s2[i]) return 1;
else if(s1[i]<s2[i]) return -1;
}
if(strlen(s1)==strlen(s2)) return 0;
else if(strlen(s1)>strlen(s2)) return 1;
return -1;
}
void var(char *s1,char *s2)
{
char c;
int len=strlen(s1)>strlen(s2)?strlen(s1):strlen(s2);
for(int i=0;i<len;i++)
{
c=s1[i];
s1[i]=s2[i];
s2[i]=c;
}
}
int main(){
char a[1024][100];
int n;
scanf("%d\n",&n);
for(int i=0;i<n;i++)
{
scanf("%s",a[i]);
}
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(compare(a[i],a[j])>0)
{
var(a[i],a[j]);
}
}
}
for(int i=0;i<n;i++)
{
printf("%s\n",a[i]);
}
return 0;
}