题目描述
设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613
输入
输入分2行
第一行是n
第2行是n个整数
输出
连接成的多位数
样例输入 Copy
3 13 312 343
样例输出 Copy
34331213
#include<stdio.h>
#include<string.h>
int main()
{
int n;
char s[30][1000],t[1000],a[1000],b[1000];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s",&s[i]);
}
for(int i=0;i<n;i++)
{
for(int j=n-1;j>i;j--)
{
strcpy(a,s[j]);
strcpy(b,s[j-1]);
if(strcmp((strcat(a,s[j-1])),(strcat(b,s[j])))>0)
{
strcpy(t,s[j]);
strcpy(s[j],s[j-1]);
strcpy(s[j-1],t);
}
}
}
for(int i=0;i<n;i++)
{
printf("%s",s[i]);
}
printf("\n");
return 0;
}