打印
[C语言]

c语言 求教

[复制链接]
1698|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
蔚蓝柳叶|  楼主 | 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
如此反复,所以退不出来。

使用特权

评论回复
5
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了。

使用特权

评论回复
6
黑曼巴| | 2014-3-18 16:54 | 只看该作者
楼上的解释都是正确的!

使用特权

评论回复
7
mylsf| | 2014-3-18 17:31 | 只看该作者
学习了

使用特权

评论回复
8
蔚蓝柳叶|  楼主 | 2014-3-19 16:28 | 只看该作者
太谢谢你们了。本人学习了。已调好程序了。

使用特权

评论回复
9
lkl0305| | 2014-3-19 19:26 | 只看该作者
呵呵,循环嵌套就是容易出错

使用特权

评论回复
10
724521889| | 2014-3-19 20:30 | 只看该作者
嗯嗯       说的都对   哈哈哈  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

81

帖子

1

粉丝