大佬帮忙看下错哪里了,10000以内素数
#include <stdio.h>#include<math.h>
int main()
{
int count = 2;
int i ,j , flag;
for(i = 4; i < 10000; i ++)
{
for(j = 0 ; j <= i/2; j ++)
{
flag = 0;
if(i % j == 0)
{
flag = 1;
break;
}
}
if(flag = 0)
count ++;
}
printf("%d",count);
return 0;
} 本帖最后由 行客 于 2018-12-30 18:26 编辑
你看一下 这一段:
for(j = 0 ; j <= i/2; j ++)
{
flag = 0;
if(i % j == 0)
。。。。。。
}
for循环第一次执行顺序是:先j=0,再判断 j <= i/2,然后执行内部循环语句。而这时的j=0的,所以i % j 除数为0才会异常退出。这个在如VC6等IDE环境下构建编译因为没有语法错误所以是能通过的,但真正执行是有错误的。 {:10_249:}{:10_249:}
页:
[1]