为什么还是报错啊啊啊啊啊啊
#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 + num);
}
for (int i = 0; i < n; i++)
{
total = total + 1.0 * num / num;
}
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 + num);
}
for (int i = 0; i < n; i++)
{
total = total + 1.0 * num / num[ i];
}
printf("%.4f", total);
return 0;
}
请注意,这只是修复了代码中的错误,但不保证逻辑上的正确性。如果你还有其他问题,请提供更多细节。
页:
[1]