@[Sun__Yj](/space/show?uid=97310) 请这样发代码
```cpp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char a[21][1000];
int main()
{
char s[1000];
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%s",a[i]);
for(int i=0; i<n-1; i++)
{
for(int j=i+1; j<n; j++)
{
if(strcmp(a[i],a[j])!=1)
{
strcpy(s,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],s);
}
}
}
for(int i=0; i<n; i++)
printf("%s",a[i]);
//printf("\n");
return 0;
}
```
by 波风水门 @ 2018-10-31 21:51:53
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char a[21][1000];
int main()
{
char s[1000];
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%s",a[i]);
for(int i=0; i<n-1; i++)
{
for(int j=i+1; j<n; j++)
{
if(strcmp(a[i],a[j])!=1)
{
strcpy(s,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],s);
}
}
}
for(int i=0; i<n; i++)
printf("%s",a[i]);
//printf("\n");
return 0;
}
by Sun__Yj @ 2018-10-31 21:53:40
@[Sun__Yj](/space/show?uid=97310) 推荐使用sort快排,可以这样写
```cpp
#include<bits/stdc++.h>
using namespace std;
string a[21];
bool check(string a,string b)
{
return a+b>b+a;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1,check);
for(int i=1;i<=n;i++)
{
cout<<a[i];
}
return 0;
}
```
by 波风水门 @ 2018-10-31 21:54:29
@[四代目火影](/space/show?uid=81710) 谢谢 大佬们的题解我都已经看了,想用C写一个,不知道为什么只对了一个测试点
by Sun__Yj @ 2018-10-31 21:58:13
就是对字符串排序,是前面的加后面的大还是后面加前面的大
by Shui_Dream @ 2018-12-13 21:14:27