主题:请高手指教
yaoyinglong
[专家分:0] 发布于 2010-04-18 22:35:00
你好!我编写了一个求素数的程序,如下:
#include<stdio.h>
#include<math.h>
main()
{
int i,n;
double j;
printf("please input a number :");
scanf("%d",&n);
j=sqrt(n);
for(i=2;i<j;i++);
{
if(n%i==0)
break;
if(i>=j)
printf("该数是素数!!!");
}
}
但是有一个错误:error C2043: illegal break
请高手指点指点!我该怎么做呢?为什么会这样?
回复列表 (共5个回复)
沙发
PP_make [专家分:60] 发布于 2010-04-18 23:04:00
break 一般用在循环或switch语句中的,把 if(n%i==0)该为 while(n%i==0)就行了!
还可以:
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,n;
int j;
printf("please input a number :");
scanf("%d",&n);
j=(int)sqrt(n);
for(i=2;i<j;i++);
{
if(n%i!=0)
printf("该数是素数!\n");
else
printf("该数不是素数!\n");
}
return 0;
}
在编程的时候最好要养成良好的编程习惯,呵呵,仅供参考!
板凳
PP_make [专家分:60] 发布于 2010-04-18 23:10:00
我的那个
for(i=2;i<j;i++);
if(n%i!=0)
printf("该数是素数!\n");
else
printf("该数不是素数!\n");
错了,呵呵,有点仓促了!不好意思~
3 楼
yaoyinglong [专家分:0] 发布于 2010-04-18 23:47:00
哦!很好!呵呵,太感谢你啦!那个break在循环中能用吗?我想应该可以吧!请指教!!!
[em12]
4 楼
雪光风剑 [专家分:27190] 发布于 2010-04-19 07:53:00
第二个判断写在循环里的话永远都不会满足条件的
5 楼
PP_make [专家分:60] 发布于 2010-04-19 11:03:00
恩,break 适用于用在循环或switch语句中的,对,你的那个第二个判断在里面是多余的,因为在for循环里已经有了 i<j 作为终止的条件了!
我来回复