【发布时间】:2012-10-14 09:34:06
【问题描述】:
我是一个新手程序员,所以请与我打交道。我正在编写一个程序来分析数据。当我执行程序时,我收到一个“浮点异常”,我不知道为什么。这是错误源自的代码部分。据我所知,if 声明似乎是问题所在,但我不明白为什么。非常感谢您提供的任何帮助!
double tArray[600][49];
void main() {
double finalArray[600][0]
double n = 0;
int h = 0;
try {
for (int i = 0; i < 600; j++) {
for (int j = 1; j < 16; j++) {
h++;
n = tArray[i][j * 3 - 1] - tArray[i][j * 3 - 2];
double t = -30;
if (n < t) {
finalArray[i][0] = tArray[h][3 * j] - tArray[h + t][3 * j];
h++;
}
}
}
}
}
【问题讨论】:
-
finalArray[i][0]确实越界了。 -
您在内部循环中递增 'h',然后将其用作 tArray 中的第一个索引 - 它会很快超过 600。
-
我们可以假设
double finalArray[600][0]中缺少的分号只是一个错字,对吧? -
for(int i = 0; i < 600; j++)循环中的j++是错字吗?try块有什么用?这不是你的真实代码是吗?真是一团糟。 -
扔掉任何告诉你使用
void main()的书。这是int main()。
标签: c++ arrays floating-point-exceptions