1

行数と列数が可変の2次元配列があり、列の差が最も大きい行を見つけることになっています。より明確にするために:私はn日間の最低気温と最高気温を与えられ、気温の差が最も大きい日を見つけることになっています(そして、2日が同じ差がある場合、私は与えることになっています最初のものだけ)。ただし、多次元配列を使用したことがないので、次のようなことができるかどうかわかりません。a [i] [1] -a [i] [0]?(a [i]はその日のインデックスであり、a [1]はその日の最高気温、a [0]は最低気温です)

私のコードのこの部分は次のようになります。

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 に答える 1

4
  1. あなたはあなたの関数の名前を隠しています-あなたはそれらの1つをdifference何か他のものにしたいかもしれません。
  2. =左側で割り当てようとしている変数でのみ機能します。試す:

    difference = a[i][1] - a[i][0];
    
于 2012-06-04T22:15:20.753 に答える