请问,我这个用循环输出0-200的素数哪里出错了呢,他为什么啥都不显示呀?

请问,我这个用循环输出0-200的素数哪里出错了呢,他为什么啥都不显示呀?

img

在第一次循环的时候j值为0,而除数不能为0!所以才有错误
如果你改成i、j全部赋值为2来重新编译,那么又因为你把i、j放在外面赋值,会致使再for循环结束后,第二个循环的时候,它的i、j值是从前一次开始进行循环!
参考代码:

#include <iostream>
using namespace std;
int main()
{
    int i;
    int j;
    for(i=2;i<=200;i++)
    {
        for(j=2;j<i;j++)
        {
            if(i%j==0)
                break;
        }
        if(j==i)
            cout<<i<<endl;

    }
    //system("pause");
    return 0;
}

结果:

img

!i%j==0
这一句加括号吧
优先级好像乱了
!(i%j==0)