任意輸入一個天然數,輸出該天然數的各位數字組成的最大數。例如,輸入 1593 ,則輸出爲 9531 。php
輸入: 天然數 n數組
輸出: 各位數字組成的最大數ide
【分析】
很顯然,這是個排序的題。先用冒泡排序實現,很簡單代碼就不寫了。post
【代碼】測試
冒泡排序的代碼在個人Blog:http://blog.csdn.net/debug__boy/article/details/8170580中,代碼的58-70行。spa
【多說一點】.net
這裏提供一稍稍帶點技巧的實現方法,不須要排序,利用數字0~9一次遞增(排好序)的規律,直接得出結果。debug
代碼以下:component
- #include "stdio.h"
-
- int main(int argc, char **argv)
- {
- char ch;
- int arr[10] = {0};
-
-
- while(1)
- {
- ch = getchar();
- if (ch == '\n')
- {
- break;
- }
- arr[ch - '0']++;
- }
-
- int i, j;
-
-
- for (i = 9; i >= 0; i--)
- {
- printf("數字%d 出現%d次.\n", i, arr[i]);
- }
-
-
- printf("\n組成的最大的數:\n");
- for (i = 9; i >= 0; i--)
- {
- for(j = arr[i]; j > 0; j--)
- printf("%d", i);
- }
- printf("\n");
-
-
- printf("\n組成的最小的數:\n");
- for (i = 1; i <= 9; i++)
- {
- for(j = arr[i]; j > 0; j--)
- printf("%d", i);
- }
- printf("\n");
-
- return 0;
- }
【運行截圖】
![](http://static.javashuo.com/static/loading.gif)