C ++:二维数组,如何找到列中差异最大的行?

时间:2012-06-04 22:11:05

标签: c++ multidimensional-array

我有一个具有可变行数和两列的二维数组,我应该找到其列中具有最大差异的行。为了说得更清楚:我给了n天的最低和最高温度,我应该找到温度差异最大的那天(如果两天有相同的差异,那么我应该给只有第一个)。但是,我从未使用多维数组,所以我不确定我是否可以这样做:a [i] [1] -a [i] [0]? (a [i]是当天的指数,[1]是当天的最高温度,[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

如果我不把它作为一个赋值,但是我把它的值等于与==的差值,那么它说“语句没有效果”,所以我在想,也许我不被允许做什么我想做。

1 个答案:

答案 0 :(得分:4)

  1. 你正在影响你的功能名称 - 你可能希望其中一个difference成为别的东西。
  2. =仅适用于您尝试在左侧分配的变量。尝试:

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