|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 问傻问题的我又来了。。关于循环输出质数的,出现了死循环。。
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
712
人关注过本帖
标题:
问傻问题的我又来了。。关于循环输出质数的,出现了死循环。。
只看楼主
加入收藏
kvains
等 级:
新手上路
帖 子:13
专家分:0
注 册:2013-9-21
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:9
问傻问题的我又来了。。关于循环输出质数的,出现了死循环。。
#include<stdio.h>
int main()
{
int n ,i;
n=0;
for(n=100;99<n<201;n++)
{
for(i=1;i<=n;i++)
if(n%i==0)break;
if(i>n-1)printf("%d\n",n);
}
return 0;
}
改了很多次了。。也对着书看了很久。。哪里有问题呢?
2013-09-25 00:08
举报帖子
使用道具
赠送鲜花
ming10086
等 级:
论坛游民
帖 子:5
专家分:15
注 册:2013-9-11
第
2
楼
收藏
得分:6
在你的程序中:你没发现这句话有问题吗??
for(i=1;i<=n;i++)
if(n%i==0)break;
无论n的值为多少,由于你的i的初始值为1,所以if(n%i==0)break;这句话永远都会执行,
解决方法可以用for(i=2;i<=n;i++)。其实也没必要让i一直加到n,让i一直加n/2还没被整除,那么这个n一定是个素数,
还有也可以让i加到sqrt(n),这个表示根号下n。让i一直加sqrt(n)还没被整除,那么这个n也一定是个素数。
2013-09-25 01:53
举报帖子
使用道具
赠送鲜花
embed_xuel
等 级:
贵宾
威 望:
58
帖 子:3845
专家分:11385
注 册:2011-9-13
第
3
楼
收藏
得分:7
2楼说的是个问题,但不是照成死循环的原因。死循环是因为这句99<n<201
总有那身价贱的人给作业贴回复完整的代码
2013-09-25 04:04
举报帖子
使用道具
赠送鲜花
kvains
等 级:
新手上路
帖 子:13
专家分:0
注 册:2013-9-21
第
4
楼
收藏
得分:0
回复 3楼 embed_xuel
没错!! 我把99〈去掉后,就正常了!!请问,这是为什么呢?
2013-09-25 12:41
举报帖子
使用道具
赠送鲜花
小小程序猿
等 级:
小飞侠
威 望:
1
帖 子:755
专家分:2785
注 册:2013-7-18
第
5
楼
收藏
得分:7
以下是引用
kvains
在2013-9-25 12:41:49的发言:
没错!! 我把99〈去掉后,就正常了!!请问,这是为什么呢?
首先你 n 的初值就是100,肯定是大于99的
其次,如果你想写99<n<200的话,应该用连接词&&
孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-09-25 12:44
举报帖子
使用道具
赠送鲜花
embed_xuel
等 级:
贵宾
威 望:
58
帖 子:3845
专家分:11385
注 册:2011-9-13
第
6
楼
收藏
得分:0
回复 4楼 kvains
你多看看书和别人的代码吧
总有那身价贱的人给作业贴回复完整的代码
2013-09-25 12:45
举报帖子
使用道具
赠送鲜花
kvains
等 级:
新手上路
帖 子:13
专家分:0
注 册:2013-9-21
第
7
楼
收藏
得分:0
回复 5楼 小小程序猿
明白了。。这就是语法。。多谢了~!!
2013-09-25 12:53
举报帖子
使用道具
赠送鲜花
kvains
等 级:
新手上路
帖 子:13
专家分:0
注 册:2013-9-21
第
8
楼
收藏
得分:0
回复 6楼 embed_xuel
谢谢~!!也许有些问题到时候就明白了。。
2013-09-25 12:54
举报帖子
使用道具
赠送鲜花
林凡
等 级:
论坛游民
帖 子:31
专家分:61
注 册:2013-7-29
第
9
楼
收藏
得分:0
回复 楼主 kvains
/**********************************
*******函数名: int main()
*******功能:输出质数
**********************************/
#include<stdio.h>
int main()
{
int n ,i;
n=0;
for(n=100;n<201;n++)
{
for(i=2;i<=n;i++)
if(n%i==0) break;
if(i>=n) printf("%d\n",n);
}
return 0;
}
2013-09-25 22:05
举报帖子
使用道具
赠送鲜花
林凡
等 级:
论坛游民
帖 子:31
专家分:61
注 册:2013-7-29
第
10
楼
收藏
得分:0
问题很明显for()语句中的条件,99<n<201,改为n<201,就对了,就给分啊!!!
2013-09-25 22:06
举报帖子
使用道具
赠送鲜花
10
1/1页
1
快速回复:
问傻问题的我又来了。。关于循环输出质数的,出现了死循环。。
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.049165 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved