Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这个循环在第一次迭代时中断? 我学习C++,试图创建一个程序,从1到100迭代,发现所有质数,但基本上它在乘法函数的第一次迭代中停止。_C++_Algorithm_Vector - Fatal编程技术网

为什么这个循环在第一次迭代时中断? 我学习C++,试图创建一个程序,从1到100迭代,发现所有质数,但基本上它在乘法函数的第一次迭代中停止。

为什么这个循环在第一次迭代时中断? 我学习C++,试图创建一个程序,从1到100迭代,发现所有质数,但基本上它在乘法函数的第一次迭代中停止。,c++,algorithm,vector,C++,Algorithm,Vector,cout 在下列情况下,您将被零除: if( (tmp % check) == 0) 这样考虑: bool isPrime(int n) { if (n == 1 || n == 2) return false; for (int i=2; i <= n/2; i++) if((n % i) == 0) return false; return true; } int main(int argc, ch

cout
在下列情况下,您将被零除:

if( (tmp % check) == 0)
这样考虑:

bool isPrime(int n) {  
   if (n == 1 || n == 2)
      return false;   

   for (int i=2; i <= n/2; i++)
        if((n % i) == 0)
            return false;

   return true;
}

int main(int argc, char** argv) {
    int top = 100;
    vector<int> primes;

    for(int i = 1; i < top; i++)
        if (isPrime(i))
             primes.push_back(i);

    for(vector<int>::iterator it = primes.begin(); it != primes.end(); ++it)
        cout << *it << " - ";

    cout << endl;
    return 0;
}

for(int i=1;i)调试器是为什么而发明的。顺便说一句,你不能模0。如果((tmp%check)
是因为
check
为零,你的程序就在
上转储。用你的调试器逐步调试程序,看看会发生什么。@πάνταῥεῖ OP不是索引。他们在迭代数字1到100。@user2079303我只是想指出这一点。我没有说这是循环实际中断的原因(因此是注释)。
Why does this loop break at the first iteration?
if( (tmp % check) == 0)
bool isPrime(int n) {  
   if (n == 1 || n == 2)
      return false;   

   for (int i=2; i <= n/2; i++)
        if((n % i) == 0)
            return false;

   return true;
}

int main(int argc, char** argv) {
    int top = 100;
    vector<int> primes;

    for(int i = 1; i < top; i++)
        if (isPrime(i))
             primes.push_back(i);

    for(vector<int>::iterator it = primes.begin(); it != primes.end(); ++it)
        cout << *it << " - ";

    cout << endl;
    return 0;
}
3 - 5 - 7 - 11 - 13 - 17 - 19 - 23 - 29 - 31 - 37 - 41 - 43 - 47 - 53 - 59 - 61 - 67 - 71 - 73 - 79 - 83 - 89 - 97 -