0

私は知らないサイズの配列を持っています (ほとんどの場合 10 のサイズ)。そのほとんどは 1 と 2 ですが、3 と 4 の場合もあります。そうすれば、私はすべてを行うことができます

ありがとう :)

4

5 に答える 5

2

ブレーク条件に達するまで、配列を繰り返し処理します。

反復中(forまたはwhileループを使用)、これまでの最大値を記憶し、現在と比較します。

于 2012-06-18T04:49:40.970 に答える
2

現在、これをサポートするコンパイラにアクセスすることはできませんが、C++11 でそれを行う方法の簡潔な例を次に示します。

#include <iostream>

constexpr int array[10] = { 1, 0, 2, 3, 0, 2, 7, 1, 9, 2 };

template<int maxest, int index>
struct find_biggest_r {
  enum { value = find_biggest_r<(array[index] > maxest ? array[index]:maxest),index-1>::value };
};

template<int maxest>
struct find_biggest_r<maxest,0> {
 enum { value = (array[0] > maxest ? array[0] : maxest) };
};

template<int index>
struct find_biggest {
  enum { value = find_biggest_r<array[index],index-1>::value };
};

int main()
{
    std::cout << find_biggest<9>::value;
}

//

トローリングが終わったので、C では次のようにします。

int array[4] = { 2, 1, 0, 2 };
int biggest = array[0];
for (int i = 1; i < 4; i++) { // we've already used array[0] so we start at array[1]
  if (array[i] > biggest) biggest = array[i];
}
于 2012-06-18T05:10:49.360 に答える
1

擬似コードのみを提供します

max := array[0];

for i = 1 to size
    if(array[i] > max)
     {
        max := array[i]
     }
于 2012-06-18T04:52:29.820 に答える
1

これを試すことができます:-

int max = array[0];    
for (int j = 1 to size)
{
    if(array[j] > max)
     {
        max = array[j];
     }
}
于 2012-06-18T06:48:24.997 に答える
1

for ループで配列のトラバースを開始します。変数を取り、デフォルトで最初の要素を入れて、最高と仮定します。トラバース中に、変数の値よりも大きい要素が見つかった場合は、それを置き換えるだけです。ループの最後で、値には最大の数値が含まれます。

于 2012-06-18T04:54:38.007 に答える