2

我是多维数组的新手,我现在正在努力解决的问题如下:我有一个“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]<<" ";
   }
    }

}
4

1 回答 1

1

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

另外,如果条件可以修改为:

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(谢谢,James),否则您需要:

float *a = new fload[n];

//do all the stuffs here

delete[] a;
于 2012-06-05T01:20:45.863 回答