C++ C++;:用二维数组中满足特定要求的元素制作一个数组
我是多维数组的新手,我现在面临的问题是:我有一个“最大”天数,以及这些天记录的最高和最低温度,我必须用这些数据做一些事情。其中之一是确定温度低于和高于0的天数(即:记录的最低温度低于,最高温度高于)。程序必须输出此类事件发生的天数以及这些天数的索引 然而,无论我使用哪种循环以及如何使用,我都会把它搞砸,要么得到完全无关的东西,要么得到一个无限循环。以下是我到目前为止的情况:C++ C++;:用二维数组中满足特定要求的元素制作一个数组,c++,multidimensional-array,C++,Multidimensional Array,我是多维数组的新手,我现在面临的问题是:我有一个“最大”天数,以及这些天记录的最高和最低温度,我必须用这些数据做一些事情。其中之一是确定温度低于和高于0的天数(即:记录的最低温度低于,最高温度高于)。程序必须输出此类事件发生的天数以及这些天数的索引 然而,无论我使用哪种循环以及如何使用,我都会把它搞砸,要么得到完全无关的东西,要么得到一个无限循环。以下是我到目前为止的情况: void abovebelow (int n, float days[maxn][2]{ int counter=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]<<" ";
}
}
}
void(整数n,浮动天数[maxn][2]{
int计数器=0;
浮动a[maxn];
for(inti=0;i你可以用简单的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;
函数声明中存在语法错误。请注意,函数声明中的maxn
不起任何作用。您的函数与上面声明的void相同(int n,float days[][2])
或上面声明的void(int n,float(*days)[2])在C++中,数组从不被值传递;当数组传递给函数时,它被隐式转换为指针,指向它的初始元素。当你看到数组类型函数参数时,它实际上与指针相同。打印出第一次出现的内容,但不是所有内容。我将编辑我的问题以使其更清楚!maxn
可能是一个常量,在这种情况下,声明格式良好。哦,是的!我习惯于看到所有大写的常量:)我无法编辑我的评论,但我刚刚意识到我的输入文件出错,这就是为什么我认为我只出现了第一次,我现在再次尝试了你建议的简单循环,它确实有效,我很抱歉,谢谢你!是的,maxn是一个常量,但我应该将它全部大写!
float *a = new fload[n];
//do all the stuffs here
delete[] a;