私は知らないサイズの配列を持っています (ほとんどの場合 10 のサイズ)。そのほとんどは 1 と 2 ですが、3 と 4 の場合もあります。そうすれば、私はすべてを行うことができます
ありがとう :)
私は知らないサイズの配列を持っています (ほとんどの場合 10 のサイズ)。そのほとんどは 1 と 2 ですが、3 と 4 の場合もあります。そうすれば、私はすべてを行うことができます
ありがとう :)
ブレーク条件に達するまで、配列を繰り返し処理します。
反復中(for
またはwhile
ループを使用)、これまでの最大値を記憶し、現在と比較します。
現在、これをサポートするコンパイラにアクセスすることはできませんが、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];
}
擬似コードのみを提供します
max := array[0];
for i = 1 to size
if(array[i] > max)
{
max := array[i]
}
これを試すことができます:-
int max = array[0];
for (int j = 1 to size)
{
if(array[j] > max)
{
max = array[j];
}
}
for ループで配列のトラバースを開始します。変数を取り、デフォルトで最初の要素を入れて、最高と仮定します。トラバース中に、変数の値よりも大きい要素が見つかった場合は、それを置き換えるだけです。ループの最後で、値には最大の数値が含まれます。