トップ  >  お問合せ(Contact)  >  配列の最大値取得
配列の最大値取得
Q.
m[1]からm[50]にそれぞれ数値が入っている場合に、その最大値を調べたいんですが、どのような式を作ればいいのでしょうか。
A.
配列のIndexは0から始まるので、配列数50で宣言した場合は、m[0]~m[49]までしか使用できません。
m[50]にアクセスした場合はクラッシュします。
初心者の頃はよく失敗してしまう部分なので注意してください。
下請けIT企業から納品されたプログラムでさえこの手の不具合が良くあります。
なぜ[49]までしか使えないかは、C言語のポインタと配列について調べて頂くと正しく理解できると思いますが、内容が難しくて理解できない場合は・・・
単純に配列のIndexは0から始まって終端は配列数の-1だと覚えて下さい。
本題に戻りますが、以下サンプルソースを参考にしてみて下さい。


サンプルソース:

const int temp_m[] = { 0,1,2,3,4,9,8,7,6,5 };    // テストデータ

void OnStart()

    int max_array = ArrayRange( temp_m , 0);    // 配列数取得
    int get_max_value = 0;
    
    for( int icount = 0; icount < max_array; icount++ ) {

        printf( "値比較[%d] %d vs %d" , icount , temp_m[icount] , get_max_value);
        get_max_value = MathMax( temp_m[icount] , get_max_value); // 最大値取得

    }

    printf( "最大値 = %d" , get_max_value);
}


// 実行結果
// 値比較[0] 0 vs 0
// 値比較[1] 1 vs 0
// 値比較[2] 2 vs 1
// 値比較[3] 3 vs 2
// 値比較[4] 4 vs 3
// 値比較[5] 9 vs 4
// 値比較[6] 8 vs 9
// 値比較[7] 7 vs 9
// 値比較[8] 6 vs 9
// 値比較[9] 5 vs 9
// 最大値 = 9



スポンサーリンク
検索

↑の検索エンジンが表示されない人は、
↓の古い検索エンジンを使用して下さい。
カスタム検索
MQL4リファレンスツリー
スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお~ All Rights Reserved.


Top

inserted by FC2 system