返回列表 發帖

046 數字陣列泡沫排序

本帖最後由 游東祥 於 2014-4-26 15:03 編輯

宣告一個大小為10的陣列,讓使用者逐一輸入0~10個數字。
使用者輸入的數字將依序存在陣列內。
如果使用者輸入"0",代表輸入結束。

將這個陣列由大至小排列,並輸出陣列內容。


範例:
請輸入第1個數字:15
請輸入第2個數字:40
請輸入第3個數字:11
請輸入第4個數字:0
-----------------------
輸入的數字數量:3個
排序後陣列內容如下:
1 - 40
2 - 15
3 - 11


範例2:
請輸入第1個數字:66
請輸入第2個數字:13
請輸入第3個數字:80
請輸入第4個數字:99
請輸入第5個數字:45
請輸入第6個數字:64
請輸入第7個數字:0
-----------------------
輸入的數字數量:6個
陣列內容如下:
1 - 99
2 - 80
3 - 66
4 - 64
5 - 45
6 - 13

  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.         int max = 10;
  7.         int index = 0;
  8.         int z[10] = {};
  9.         bool isEnd = false;
  10.        
  11.         while(index < max && isEnd == false)
  12.         {
  13.                 cout << "請輸入第" << index + 1 << "個數字:";
  14.                 cin >> z[index];
  15.                
  16.                 if (z[index] == 0)
  17.                 {
  18.                         isEnd = true;
  19.                 }
  20.                
  21.                 index++;
  22.                        
  23.                
  24.         }
  25.        
  26.         for (int j = 0; j < index - 1;j++)
  27.         {
  28.                 for (int i = 0; i < index - 1; i++)
  29.                 {
  30.                         if (z[i] < z[i+1])
  31.             {
  32.                                 int tmp = z[i];
  33.                                 z[i] = z[i+1];
  34.                                 z[i+1] = tmp;
  35.                         }
  36.                 }       
  37.         }
  38.        
  39.        
  40.         cout << "-----------------------" << endl;
  41.         cout << "輸入的數字數量:" << index - 1 << "個" << endl;
  42.         cout << "陣列內容如下:" << endl;
  43.         for(int i = 0; i < index - 1; i++)
  44.         {
  45.                 cout << i << "-" << z[i] << endl;
  46.         }
  47.         system("pause");
  48.         return 0;
  49. }
複製代碼

TOP

本帖最後由 林宇翔 於 2014-4-26 17:38 編輯

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
                int z[10];
                int index = 0;
                int max = 10;
                bool isEnd = false;
                while(index < 10 && isEnd == false)
                {
                        cout << "請輸入第" << index + 1 << "個數字:" ;
                        cin >> z[index];
                                if(z[index] == 0)
                                {
                                        isEnd = true;
                                }
                                
                                 
                                 index++;
                                
                                
                }
                for (int j = 0;j < index - 1; j++)
                {
                        for (int i = 0; i < index - 1; i++)
                        {
                                if (z < z[i+1])
                                {
                                 int tmp = z;
                                 z = z[i+1];
                                 z[i+1] = tmp;
                                }
                        }
                }
                cout << "-----------------------" << endl;
                cout << "輸入的數字數量:" << index << "個" << endl;
                cout << "陣列內容如下:" << endl;
                for(int x = 0; x < index - 1; x++)
                {
                        cout << x << " - " << z[x] << endl;
                }
               
        system ("pause");
        return 0;
}

TOP

返回列表