2016-11-23 101 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

如果每個數組元素都小於零,則不會。您可以用map[0][0]初始化max

0

要逐步完成2d數組,您需要兩個for循環。從2d數組映射返回行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; 
}