设有n个正整数(n≤100),将它们联接成一排,组成一个最大的多位整数。
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613
Sample Input
3
13 312 343
4
7 13 4 246
3
321 32 3
3
324 32 3
Sample Output
34331213
7424613
332321
332432
程序如下:
#include <stdio.h>
int CompareInt(int a,int b) // 死办法,计算出来一个一个比大小
{ // 可以尝试strcpy的做法
int a1=a,b1=b,la=10,lb=10;
while(a/la)
{
la*=10;
}
while(b/lb)
{
lb*=10;
}
return (a*lb+b)-(b*la+a);
}
int main()
{
int i,j,n;
int data[100],temp;
while(1)
{
printf("Input n:");
scanf("%d",&n);
if(n<=0||n>100) break;
printf("Input number:");
for(i=0;i<n;i++)
{
scanf("%d",&data[i]);
}
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
{
if(CompareInt(data[i],data[i+1])<0)
{
temp=data[i+1];
data[i+1]=data[i];
data[i]=temp;
}
}
for(i=0;i<n;i++)
{
printf("%d",data[i]);
}
printf("\n");
}
return 0;
}
程序运行截图: