1

我有一个具有可变行数和两列的二维数组,我应该找到其列中差异最大的行。更清楚地说:我得到了 n 天的最低和最高温度,我应该找到温度差异最大的那一天(如果两天有同样的差异,那么我应该给出只有第一个)。但是,我从来没有使用过多维数组,所以我不确定我是否可以这样做: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. 您正在隐藏您的函数名称 - 您可能希望其中之一difference成为其他名称。
  2. =仅适用于您尝试分配给左侧的变量。尝试:

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