新人写了一个判断素数的代码,求大神看看哪里错了
c++吧
全部回复
仅看楼主
level 1
2016年11月08日 11点11分 1
level 1
2016年11月08日 11点11分 2
level 2
判断条件有问题 a
2016年11月08日 11点11分 3
应该写什么?
2016年11月08日 11点11分
level 11
你可知道你else那三行是在干啥?
2016年11月08日 12点11分 4
那怎么表达不符合if的话输出cout?
2016年11月08日 12点11分
level 11
如果你的需求只是输出 是/不是素数的话……
int n;
cin >> n;
for(int i=2;i<n;i++)
if (n%i == 0)
{
cout << "不";
break;
}
cout << "是素数" << endl;
2016年11月08日 12点11分 5
谢谢,可是我还想请问我写的代码为什么9会判断是素数呢?
2016年11月08日 12点11分
@贴吧用户_0MRCt8S 所以我回答了你的问题,你却没有回答我的问题,else到底在干什么?
2016年11月08日 12点11分
@M_P_C_King 我不懂啊,,,难道我的格式不对?这样写不是 不满足if条件就执行else?
2016年11月08日 12点11分
@贴吧用户_0MRCt8S 自己用脑子跑一下你的程序,跑不了就说明你还需要回去复习语法。你的循环永远只有一趟,就算用大括号把后面两句括起来也一样。
2016年11月08日 12点11分
level 11
不是素数只要有一次能被其他数整除就能判断,是素数必须要跑完一个循环才能判断,楼主的码,9进去处以2有余数,进入else输出是素数,然后执行break退出循环...然后else不打括号只有紧接的一行被被包含到else里,所以你的break无论如何都会执行,然后就算打了括号,if 也break else也break所以还是只会执行一次
2016年11月08日 19点11分 6
1