我是多维数组的新手,我现在正在努力解决的问题如下:我有一个" 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]<<" ";
}
}
}
答案 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(你在不知不觉中使用你的编译器特定额外)。除非maxn
是const
(谢谢,詹姆斯),否则您需要:
float *a = new fload[n];
//do all the stuffs here
delete[] a;