ahr123 发表于 2018-12-30 16:42:11

大佬帮忙看下错哪里了,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 16:42:12

本帖最后由 行客 于 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环境下构建编译因为没有语法错误所以是能通过的,但真正执行是有错误的。

光羽民 发表于 2018-12-30 18:49:51

{:10_249:}{:10_249:}
页: [1]
查看完整版本: 大佬帮忙看下错哪里了,10000以内素数