让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
问题:为什么把数组赋值语句放在外部,代码就会报错?
解答:因为在C++中,数组的初始化必须在声明中进行,或者在定义时进行初始化。在这份代码中,数组d的声明和初始化语句在函数外部,所以编译器会认为d只是一个声明了大小但未进行初始化的数组,所以在第四行的赋值语句处报错。要解决这个问题,可以将数组的声明和初始化语句放在main函数中,或者像下面这样,在声明数组时同时进行初始化:
int d[10005] = {0, 1, 2};
这样就可以避免在赋值语句处出错了。 案例代码:
#include <iostream>
using namespace std;
int main(){
int n;
int d[10005] = {0, 1, 2};
cin >> n;
for(int i = 3; i <= n; i++){
d[i] = d[i-1] + d[i-2];
}
cout << d[n] << endl;
return 0;
}
这里将数组的声明和初始化语句放在了main函数中,也可以直接在数组声明时进行初始化,代码如下:
#include <iostream>
using namespace std;
int d[10005] = {0, 1, 2};
int main(){
int n;
cin >> n;
for(int i = 3; i <= n; i++){
d[i] = d[i-1] + d[i-2];
}
cout << d[n] << endl;
return 0;
}