2012-06-04 29 views
1

我有行兩列的數量可變的二維數組,我應該發現,在其列的最大區別一行。爲了更清楚地說明:我獲得了n天的最低和最高溫度,我應該找到溫度差異最大的一天(如果兩天有相同的差異,那麼我應該給予只有第一個)。但是,我從來沒有使用多維數組,所以我不確定我是否可以這樣做:a [i] [1] -a [i] [0]? (A [i]爲一天的索引,以及[1]是在最高溫度爲一天,一個[0]的最低)C++:二維數組,如何查找列中差異最大的行?

的我的這部分代碼看起來是這樣的:

int difference (int n, float a[maxn][2]) { 
    float difference=a[0][1]-a[0][0]; 
    int index=0; 
    for (int i=0; i<n; i++) { 
     if (a[i][1]-a[i][0]>difference) { 
      index=i; 
      a[i][1]-a[i][0]=difference; //HERE I get the error message: lvalue required as left operand of assignment 
     } 
    } 
    return index+1; //to get the day with the largest difference 

如果我不這樣做,作爲分配,但我做等於與==差的值,則說:「聲明沒有效果」,所以我在想,也許我不能做什麼我正在努力。

回答

4
  1. 你正在影響你的函數的名字 - 你可能想要其中一個difference是別的東西。
  2. =只適用於你想分配給左邊的變量。嘗試:

    difference = a[i][1] - a[i][0]; 
    
+0

也沒有必要循環之前計算的差異 –

+0

啊,我一直忘了這個!這是我第二次犯同樣的錯誤,並把變量放在右邊,謝謝! – d12n

相關問題