[此贴子已经被作者于2005-1-6 10:17:19编辑过]
----------------解决方案--------------------------------------------------------
这个判断是在for循环之后判断的,如果n是素数,则i==n,否则i<n;所以可以如此判断
----------------解决方案--------------------------------------------------------
终于理解了其中的奥秘了,真的很谢谢workhard。大家要向workhard学习阿!(就是当n是素数时,经过for语句后,i==n。若不过素数,则当i<n时就已经break了,所以i一定小于n)。另用if(i>=n)或if(i==n)来代替else,则程序也能正常,我想这样的话,就让我这被学者更易懂了。
----------------解决方案--------------------------------------------------------
虽然素数是一定要大于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编辑过]
----------------解决方案--------------------------------------------------------
你想 goto 到那里去?好好看看
----------------解决方案--------------------------------------------------------
不知为何,不能正常显示。请你把Tscanf("%d",&n);看成 To:scanf("%d",&n);请再试一下,谢谢!
----------------解决方案--------------------------------------------------------
这么多人浏览,为何就没人能留个话(除了workhard),解释一下。请问我的goto语句是否有问题,希望你们这些高手能予帮助,谢谢!另请workhard能否详细点,这好像是你的一概风格吧!
----------------解决方案--------------------------------------------------------
“goto To; }”
这里这个“TO”函数是怎么来得呀?你怎么没有定义呀??
没有定义当然会出错了!
----------------解决方案--------------------------------------------------------
#include<stdio.h> void main() { int n,i; printf("please input a number:"); T scanf("%d",&n); if(n<=2) {printf("This is number is fault,Please input another number:"); goto To; } for(i=2; i<n;i++) if (n%i==0) break; if(i<n) printf("%d not sushu \n",n); else printf("%d is sushu \n",n); getch(); }
现在好了,goto To以后就执行输入了,下面没有必要在输入。
我这几天忙着学opnet,好久没来了,共同进步吧。
----------------解决方案--------------------------------------------------------
#include<stdio.h> void main() { int n,i; printf("please input a number:"); scanf("%d",&n); while (n<=2) { printf("This is number is fault,Please input another number:"); scanf("%d",&n); } for(i=2; i<n;i++) if (n%i==0) break; if(i<n) printf("%d not sushu \n",n); else printf("%d is sushu \n",n); getch(); }
一般不推荐使用goto语句,我写了一个while()来代替。
----------------解决方案--------------------------------------------------------