【发布时间】:2021-12-23 06:50:04
【问题描述】:
我对 C++ 很陌生,我正在尝试做一些关于数据处理和二维数组的练习 所以我的问题是,当我尝试运行这段代码来计算二维数组中第一行的总和时,我似乎得到了奇怪的结果,而我使用的数据文件应该是这样的
1 19 93 92 87
1 20 76 87 75
1 19 75 87 80
1 22 86 23 30
1 20 89 82 29
1 21 28 39 31
1 22 39 21 49
1 20 40 39 19
1 20 22 11 22
1 19 75 90 15
这是我使用的代码
void sumRow(){
int data [10][5];
float sum;
ifstream f("datafile.txt");
for(int row = 0; row < 10; row++){
for(int column = 0; column < 5; column++){
f >> data[row][column];
}
}
for (int column = 2; column < 5;column++){
sum+= data[1][column];
}
cout << sum;
}
【问题讨论】:
-
您看到的奇怪输出是什么?
-
为什么在添加行的值时从第三列开始?
-
float sum;-- 你的编译器警告过你未初始化的变量吗?您的程序具有未定义的行为,因为您将data[1][column]添加到名为sum的未初始化的float变量中。 -
终于修好了!我输错了列数,似乎我忘记将总和初始化为 0。非常感谢。我自己不会注意到它
-
在行尾隐藏
}被认为是一种不好的做法。