设有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; }
程序运行截图: