键盘输入N(N ≤ 20)个0-9数字,你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。
运行效果1:
请输入数字个数N:6
请输入6个数字:0 1 7 2 0 3
组成的最小数是:100237
请按任意键继续. . .
运行效果2:
请输入数字个数N:8
请输入8个数字:0 1 5 5 8 1 0 5
组成的最小数是:10015558
请按任意键继续. . .
#include <stdio.h>
int main()
{
int a[20],N;
int i,j,m,n=0;
printf("请输入数字个数N:");
scanf("%d",&N);
printf("请输入%d个数字:",N);
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(a[j]<a[i])
{
m=a[j];
a[j]=a[i];
a[i]=m;
}
}
}
for(i=0;i<N;i++)
{
if(a[i]==0)
n=n+1;
}
a[0]=a[n];
a[n]=0;
printf("组成的最小数是:");
for(i=0;i<N;i++)
{
printf("%d",a[i]);
}
printf("\n");
return 0;
}