愛睡覺 發問時間: 電腦與網際網路程式設計 · 2 0 年前

用while找出最大值及次最大值

做了很久也在紙上拿起筆寫過又想過

只能找到最大值 次最大值怎麼找?

如輸入10,5,6,3,7,8,9,4,6,2

最大是10 次大值是9

想了久久久 只能做出最大而已=.=\"

#include \"stdafx.h\"

#include <iostream>

using std::cin;

using std::cout;

using std::endl;

int main()

{

int x;

int counter = 1;

int max = 1;

while ( counter <= 10 ){

cout << \"輸入數字: \";

cin >> x;

if ( x >= max )

max = x;

counter += 1;

}

cout << \"最最大值 = \" << max << endl;

return 0;

}

2 個解答

評分
  • 2 0 年前
    最佳解答

    int max1=0,max2=0;

    while (count <=10 ) {

    cin >> x;

    if (max1<=x) ( //發生 max1<=x 時表示 max1 變為第二名 所以要替換

    max2=max1; // max1 永遠為最大值

    max1=x;

    }

    }

    2006-03-29 13:12:21 補充:

    發現有bug max 有交換時 是跟上面是一樣的

    當沒有交換時 就要和max2比

    例 max1 =40 max2= 20

    假如 比30的話

    因為沒有交換 就要和 max2 比

  • 2 0 年前

    謝謝你熱心指導~

還有問題?馬上發問,尋求解答。