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

C++: Make an array out of the elements of a two dimensional array that meet certain requirements

本文关键字:二维数组 元素 数组 满足 C++      更新时间:2023-10-16

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

你可以用简单的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;

附注:

1.我希望这是您粘贴的代码中的错别字。函数声明中存在语法错误。

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

float *a = new fload[n];
//do all the stuffs here
delete[] a;