0

第 13 行说:“i”的名称查找更改为 ISO“for”范围

#include <iostream>
using namespace std;

int main()
{
    int Fib[40];
    Fib[0] = 1;
    Fib[1] = 1;
    cout << Fib[0] << Fib[1] << endl;

    for (int i=2; i<40; i++)
    Fib[i]=Fib[i-1]+Fib[i-2];
        cout << Fib[i] << endl;
}
4

2 回答 2

2

您忘记了要在循环中执行的指令范围:

for (int i=2; i<40; i++) {
    Fib[i]=Fib[i-1]+Fib[i-2];
    cout << Fib[i] << endl;
}

循环只会执行单个指令或单个指令范围。在您的代码中,只有第一行是循环的一部分。第二个不是,因此i超出了范围。在 C++ 中,是否缩进这些行都无关紧要。编译器不关心缩进;它仅用于帮助程序员,而不是编译器。

于 2012-12-08T04:19:31.953 回答
1

最后一行有 [i] 它不在循环内 cout << Fib[i] << endl; i 的范围仅在 for 循环内,因为 i 是根据新 ISO 标准在循环内声明的,因此正确的行是

for (int i=2; i<40; i++) {
    Fib[i]=Fib[i-1]+Fib[i-2];
    cout << Fib[i] << endl;
} 
于 2012-12-08T04:23:28.393 回答