100到200 间的 质数显示
#include<stdio.h>void main()
{
int i,m;
for(m = 100; m <= 200; m++)
{
for(i = 2; i < m; i++)
{
{
if(m % i == 0)
break;
}
if(i = m - 1 )
printf("%d\n",m);}
}
}
如上所示,为什么实际运行所有的奇数出来了(如105,根据m%5,不应该break了吗),求大神指导,好人一生平安。 {
if (...)
}//多了不必要的大括号,造成那程序是局部的。 break只能终止当前循环,所以每次运行break之后,回到了第一个for,然后继续运行。如果想要退出多层循环,有两种方案,一是封装函数,用return嵌套循环;二是添加一个flag变量,用作判断的标记 if(i = m - 1 )
改成
if (i == m - 1)
否则一直是True了。(判断一次是否能被二整除之后,所以打印出了所有奇数。)
那请问如何在该基础上完成正确代码呢?去了括号还是不行呀 已解决,感谢各位大佬
页:
[1]