#include<bits/stdc++.h>
using namespace std;
int main()
{
vector <int> v;
vector<int> :: iterator ip;
v.push_back(2);
for(int i=3;i<=32000;i+=2)
{
int top;
top = sqrt(i)+1;
int flag=0;
if(*ip>top) break;
if(i%*ip==0)
{
flag=1;
break;
}
if(flag==0)
{
v.push_back(i);
}
}
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
cout<<v.at(n)<<endl;
}
return 0;
}
可以請你解釋爲什麼我的代碼出現運行時錯誤。 矢量的大小超出範圍? 我不知道爲什麼我在這段代碼中得到錯誤的答案,雖然我的代碼非常好。爲什麼矢量的大小超出範圍
哪條線做了,當你在調試器中運行它的程序停止? – cdhowie 2014-10-08 16:50:18
添加try catch並打印出異常,異常說明了什麼? – Niall 2014-10-08 16:51:05
你不初始化'ip',所以'* ip> top'確實......什麼?你也不會檢查用戶輸入'n'。 – crashmstr 2014-10-08 16:51:13