输入两个整数x,y,输出x,y中各位数重新组合的可能形成最小的数。
#include <stdio.h>
int main()
{
int n1, n2, tmp;
int s[10000];
int i = 0;
scanf("%d %d", &n1, &n2);
while (n1 != 0) {
s[i] = n1 % 10;
i++;
n1 = n1 / 10;
}
while (n2 != 0) {
s[i] = n2 % 10;
i++;
n2 = n2 / 10;
}
//从小到大排序
for (int k = 0; k < i - 1; k++) {
for (int j = 0; j < i - k - 1; j++) {
if (s[j] > s[j + 1]) //如果a[j]比a[j+1]大则交换内容
{
tmp = s[j + 1];
s[j + 1] = s[j];
s[j] = tmp;
}
}
}
int t;
for (int j = 0; j < i; j++)
{
if (s[j] != 0)
{
printf("%d", s[j]);
t = j;
break;
}
}
for (int j = t; j < i-1; j++) {
s[j] = s[j + 1];
}
for (int j = 0; j < i-1; j++)
{
printf("%d",s[j]);
}
return 0;
}