#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
Добавить попытку поймать и распечатать исключение, что такое исключение? – Niall
Вы не инициализируете 'ip', поэтому' * ip> top' делает ... что? Вы также не проверяете ввод пользователя 'n'. – crashmstr