我有一个二维数组,具有可变数量的行和两列,我应该找到在其列中差异最大的行。更明确地说:我得到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

如果我没有将其作为赋值操作,但是我使用==使值等于差,那么它说“声明无效”,所以我在想也许我不允许做我尝试做的事情去做。

最佳答案

  • 您正在隐藏函数的名称-您可能希望这些difference之一成为其他名称。
  • =仅与您尝试在左侧分配的变量一起使用。尝试:
    difference = a[i][1] - a[i][0];
    
  • 关于c++ - C++:二维数组,如何查找其列中差异最大的行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10889111/

    10-13 03:02