数的重组
Time Limit:1000MS Memory Limit:65536K
题型: 编程题 语言: 不限定
描述
输入一个位数不多于9位的正整数,将其构成的数码重新组合,输出可以组合出的最小数。
输入格式
一个正整数(不超过9位数字)
输出格式
重新排列数字,排在最前面的0不输出
输入样例
849451
输出样例
144589
#include <stdio.h>
#include <string.h>
void s(char a[],int n)
{
int i,j,k,temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(a[j]-48<a[k]-48)
k=j;
}
if(k!=i)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
int main() {
int i,j=0,n;
char a[20];
scanf("%s",a);
n=strlen(a);
s(a,n);
while (a[j]=='0')
{
j++;
}
for (i=j;i<n;i++)
{
printf("%c",a[i]);
}
return 0;
}