当前位置: 代码迷 >> C语言 >> 为什么会陷入死循环呢?
  详细解决方案

为什么会陷入死循环呢?

热度:123   发布时间:2005-07-16 15:09:00.0
为什么会陷入死循环呢?
这是求100~~200之间的素数问题
为什么会陷入死循环呢?/
#include"stdio.h"
#include"math.h"
main()
{  int i,j;
   for(i=100;1<=200;i++)
     { if((i%2!=0)&&(i%3!=0)&&(i%5!=0)&&(i%7!=0))
  printf("%d \n",i);
     }
}
----------------解决方案--------------------------------------------------------
以下是引用shmilysw在2005-7-16 15:09:29的发言: 这是求100~~200之间的素数问题 为什么会陷入死循环呢?/ #include"stdio.h" #include"math.h" main() { int i,j; for(i=100;1<=200;i++) { if((i%2!=0)&&(i%3!=0)&&(i%5!=0)&&(i%7!=0)) printf("%d \n",i); } }
请仔细看程序,for(i=101;i<200;i+=2) 其中100是偶数不用考虑,而在101到200之间所以偶数都可以不考虑,i的增长可以调为2,跳过偶数的检测。。注意中间的关系表达式,不要写错是i不是1,1<=200是永远成立的,所以会造成死循环。。。。
----------------解决方案--------------------------------------------------------
谢过!!
----------------解决方案--------------------------------------------------------
呵呵`~是这个问题啊`~~我看了半天~~`/lh
----------------解决方案--------------------------------------------------------
以下是引用shmilysw在2005-7-16 15:09:29的发言: 这是求100~~200之间的素数问题
这样求出的不全市素数
----------------解决方案--------------------------------------------------------
兄弟,以后这种问题要自己看清楚了再问,i和1都看不清楚,我砍!!!!
----------------解决方案--------------------------------------------------------
算法错误,这样是不行的。
比如121=11*11,但是确满足程序!
----------------解决方案--------------------------------------------------------
  相关解决方案