[C语言] c语言 求教

[复制链接]
 楼主| 蔚蓝柳叶 发表于 2014-3-17 21:45 | 显示全部楼层 |阅读模式
本帖最后由 蔚蓝柳叶 于 2014-3-17 21:46 编辑

#include <stdio.h>
int n=100,i;
main()
{while (n<=200)
{i=2;
while(i<=100)
{if (n%i==0) i=n;
else i++;}
if (i<n)  printf ("%d/t",n);
else n++;}}
这应该运行出100-200的素数。但实际,编译没有错,运行时不出任何结果(没有 press any key to continue!),光标一直在闪。请问这个c语言哪里出错了,哪里出现死循环了?求指教!
craaazyfor 发表于 2014-3-18 08:07 | 显示全部楼层
要让别人看你的代码,总得稍微整理一下再发啊!
ticomi 发表于 2014-3-18 08:30 | 显示全部楼层

本帖最后由 蔚蓝柳叶 于 2014-3-17 21:46 编辑


#include <stdio.h>
int n=100,i;
main()
{
  while (n<=200)
  {
    i=2;
    while(i<=100)
    {
      if (n%i==0)
         i=n;      //此处停止While循环试试
       else
      i++;
     }
  if (i<n)  
   printf ("%d/t",n);
  else
   n++;
  }
}
wolension 发表于 2014-3-18 08:49 | 显示全部楼层
n = 100;
i = 2;
if(n % i== 0) //100%2等于0,条件成立
i = n; //i赋值,也是100
while(i<=100) //100 == 100成立
if(n % i== 0) //100%100等于0,条件成立
i = n; //i赋值,也是100
如此反复,所以退不出来。
qinqiabc 发表于 2014-3-18 09:05 来自手机 | 显示全部楼层
while(i<=100)
{
    if (n%i==0) i=n;
    else i++;
}
死在这里了,你把初始值代进入试一下就知道了,n=100,i=2,第一次循环结果i=100,从第二次往后就一直i=100了。
黑曼巴 发表于 2014-3-18 16:54 | 显示全部楼层
楼上的解释都是正确的!
mylsf 发表于 2014-3-18 17:31 | 显示全部楼层
学习了
 楼主| 蔚蓝柳叶 发表于 2014-3-19 16:28 | 显示全部楼层
太谢谢你们了。本人学习了。已调好程序了。
lkl0305 发表于 2014-3-19 19:26 | 显示全部楼层
呵呵,循环嵌套就是容易出错
724521889 发表于 2014-3-19 20:30 | 显示全部楼层
嗯嗯       说的都对   哈哈哈  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

81

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

10

主题

81

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部