2016-11-23 7 views
-3
/* return the largest element in map[size][size] */ 
double map_max(size_t size, double **map) { 
double max = 0; 
for (int i = 0; i < size; i++) { 
    for (int j = 0; j < size; j++) { 
     if (max < map[]) { 
       max = map[]; 
      } 
     } 
    } 

    return max; 
} 

これはmap [] []の中で最大の要素を返しますか? (最小の要素に対しても同じことをしますが)配列の中で最大の要素を返す

+2

あなたのインデックスは[mcve] – KevinDTimm

+0

'if(max davmac

答えて

0

map[]は有効な構文ではありません。配列を正しく索引付けする必要があります。

if (max < map[i][j]) { 
     max = map[i][j]; 
    } 
1

あなたのマップ検索は添字を持っていないようだ、とあなたはmaxの宣言にセミコロンを逃しています。また、配列の最大値が0より小さいというリスクがあります。この場合、関数は真の最大値ではなく0を返します。これを修正するには、maxをいくつかのデフォルト値(例えば、map[0][0]または負の無限大)を取るように再定義するか、

アレイの寸法がsizesizeの場合、これは最大値を見つけます。

0

すべての配列要素が0より小さい場合はありません。

maxmap[0][0]で初期化できます。

0

2次元配列をステップ実行するには、2つのforループが必要です。 2次元配列マップから行i、列jの値を返すための適切な構文はmap[i][j]です。

/* return the largest element in map[size][size] */ 
double map_max(size_t size, double **map) { 
    double max = 0; 
    for (int i = 0; i < size; i++) { 
     for (int j = 0; j < size; j++) { 
      if (map[i][j] > max) { 
       max = map[i][j]; 
      } 
     } 
    } 
    return max; 
} 
関連する問題