出一题,娱乐一下。
将一个随机的整数转换成一个按各位上数值大小排序的整数,例如整数2541转换成1245,整数521368转换成123568,输入一个int能容纳的正整数,输出排序后的结果,要求:除scanf和printf之外不能使用其它库函数。
2012-07-29 23:47
2012-07-30 00:04
程序代码:
#include <stdio.h>
int main(void)
{
int x = 0;
int num[32] = {0};
int i = 0;
int j = 0;
int tmp = 0;
int i_min = 0;
scanf("%d", &x);
do
{
num[i] = x % 10;
x /= 10;
i++;
} while (x > 0);
tmp = i;
for (i = 0; i < tmp; i++)
{
i_min = 0;
for (j = 1; j < tmp; j++)
{
if (num[j] < num[i_min])
{
i_min = j;
}
}
//如果大于10则停止
if (num[i_min] >= 10)
{
break;
}
printf("%d", num[i_min]);
num[i_min] = 10;
}
return 0;
}
2012-07-30 00:14
2012-07-30 00:36
2012-07-30 00:43
2012-07-30 04:14
2012-07-30 07:40
2012-07-30 09:15
2012-07-30 09:22
2012-07-30 09:53