出一题,娱乐一下。
将一个随机的整数转换成一个按各位上数值大小排序的整数,例如整数2541转换成1245,整数521368转换成123568,输入一个int能容纳的正整数,输出排序后的结果,要求:除scanf和printf之外不能使用其它库函数。
#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; }