C ++:用满足特定要求的二维数组的元素制作数组

时间:2012-06-05 01:10:58

标签: c++ multidimensional-array

我是多维数组的新手,我现在正在努力解决的问题如下:我有一个" maxn"这些天记录的天数,最高和最低温度,我必须对这些数据做一些事情。其中一个方面是确定温度低于和高于0的天数(即:最低记录温度低于和高于最高值)。程序必须输出发生此类事件的天数以及这些天的索引。

然而,无论我使用哪个循环以及如何使用,我都搞砸了,或者我得到的东西绝对不相关或无限循环。以下是我到目前为止的情况:

void abovebelow (int n, float days[maxn][2]{

int counter=0;
float a[maxn];

for (int i=0; i<n; i++){
     for (int j=0; j<n; j++){
          if ((days[i][0]<0 && days[i][1]>0) || (days[i][1]<0 && days[i][0]>0)){
           counter++;
           i=a[j];
      cout<<counter<<" "<<a[j]<<" ";
   }
    }

}

1 个答案:

答案 0 :(得分:1)

你可以用简单的for循环来做。为什么要使用两个嵌套循环?

而且,if条件可以修改为:

for (int i=0; i<n; i++) {
    if (days[i][0]*days[i][1]<0) {
        counter++;
        cout<<"Day "<<i+1<<endl;
    }
}
cout<<"Counter: "<<counter<<endl;

PS:

1.我希望你粘贴的代码中有拼写错误。函数声明中存在语法错误。

2.在标准C ++中,没有VLA(你在不知不觉中使用你的编译器特定额外)。除非maxnconst(谢谢,詹姆斯),否则您需要:

float *a = new fload[n];

//do all the stuffs here

delete[] a;