标题:[讨论] 请Workhard帮忙看这个程序(goto问题)
取消只看楼主
lmr
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2004-12-9
 问题点数:0 回复次数:5 
[讨论] 请Workhard帮忙看这个程序(goto问题)
判断输入的数字是否是素数(素数就是不能被2到N-1中的任何一个数整除),现有个问题: if(i<n) printf("%d不是素数\n",n); else printf("%d 是素数\n",n); 这两行看不懂,i肯定是小于n的嘛,那相当于if(i<n)==if(1)就是成立了吧,但若我用if(1)代替if(i<n),却不行。请高手帮我解释这个程序,谢谢! #include<stdio.h> main() { int n,i; scanf("%d",&n); for(i=2; i<n;i++) if (n%i==0) break; if(i<n) printf("%d不是素数\n",n); else printf("%d 是素数\n",n); getch(); }

[此贴子已经被作者于2005-1-6 10:17:19编辑过]

搜索更多相关主题的帖子: goto Workhard 
2005-01-05 11:13
lmr
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2004-12-9
得分:0 
终于理解了其中的奥秘了,真的很谢谢workhard。大家要向workhard学习阿!(就是当n是素数时,经过for语句后,i==n。若不过素数,则当i&lt;n时就已经break了,所以i一定小于n)。另用if(i&gt;=n)或if(i==n)来代替else,则程序也能正常,我想这样的话,就让我这被学者更易懂了。
2005-01-05 14:43
lmr
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2004-12-9
得分:0 

虽然素数是一定要大于2的,但我想若有人不知,老是输入小于3的值,那要什么提示他,我现补充这个程序,但不能正确运行,请再帮忙。 #include<stdio.h> main() { int n,i; Tscanf("%d",&n); if(n<=2) {printf("This is number is fault,Please input another number:"); goto To; } scanf("%d",&n); for(i=2; i<n;i++) if (n%i==0) break; if(i<n) printf("%d not zhushu \n",n); else printf("%d is zhushu \n",n); getch(); }

就是当输入大于2时,为何没有反应呢?

[此贴子已经被作者于2005-1-5 16:12:40编辑过]

2005-01-05 15:12
lmr
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2004-12-9
得分:0 
不知为何,不能正常显示。请你把Tscanf("%d",&n);看成 To:scanf("%d",&n);请再试一下,谢谢!
2005-01-05 16:22
lmr
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2004-12-9
得分:0 
这么多人浏览,为何就没人能留个话(除了workhard),解释一下。请问我的goto语句是否有问题,希望你们这些高手能予帮助,谢谢!另请workhard能否详细点,这好像是你的一概风格吧!
2005-01-06 10:16
lmr
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2004-12-9
得分:0 
Thank you!看来我有时真的很粗心,不过谢谢各位的帮助,使的我慢慢地养成了好的习惯了,再次谢谢workhard。希望共同进步,哈!
2005-01-06 16:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-10665-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052043 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved