|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <iostream>
using namespace std;
#include <vector>
int main()
{
int n;
vector<int> num;
num.push_back(1);
num.push_back(2);
double total = 0;
cin >> n;
for (int i = 3; i <= n+1; i++)
{
num.push_back(num[i - 1] + num[i - 2]);
}
for (int i = 0; i < n; i++)
{
total = total + 1.0 * num[i + 1] / num[i];
}
printf("%.4f", total);
return 0;
}
怎么还是报错啊,服了
你的代码中存在几个问题导致了报错:
1. 你在使用vector之前没有包含<vector>头文件。你需要在代码开头添加 #include <vector> 。
2. 你在使用命名空间std之前没有包含<iostream>头文件。你需要在代码开头添加 #include <iostream> 。
3. 在for循环中,你将i的初始值设为3,但是num中只有两个元素,所以当n大于等于3时,会访问到超出vector范围的元素。你需要将i的初始值设为2,以保证num中有足够的元素。
修改后的代码如下:
- #include <iostream>
- #include <vector>
- using namespace std;
- int main()
- {
- int n;
- vector<int> num;
- num.push_back(1);
- num.push_back(2);
- double total = 0;
- cin >> n;
- for (int i = 2; i <= n+1; i++)
- {
- num.push_back(num[i - 1] + num[i - 2]);
- }
- for (int i = 0; i < n; i++)
- {
- total = total + 1.0 * num[i + 1] / num[ i];
- }
- printf("%.4f", total);
- return 0;
- }
复制代码
请注意,这只是修复了代码中的错误,但不保证逻辑上的正确性。如果你还有其他问题,请提供更多细节。
|
|