一个简单C程序

下面的一个程序,我有两个疑问。1.每当我输入一个不是素数的数时,屏幕上会给出NO,但是我输入的数越大,这个NO也会越多。我怎么才能使NO只出现一次呢。要用break之类的... 下面的一个程序,我有两个疑问。
1.每当我输入一个不是素数的数时,屏幕上会给出NO,但是我输入的数越大,这个NO也会越多。我怎么才能使NO只出现一次呢。要用break之类的语句吗。

2. 在程序第十行中,如果我不加";"的话,VC++6.0告诉我说有error,这一点比较奇怪,我记得for后面不应该加冒号啊。
不知道怎么回事。

问题:输入一个数,判断是否为素数。
#include<stdio.h>
#include<math.h>
main()
{
int i,x;
scanf("%d",&x);
for(i=2;i<=x-1;i++)
if(x%i==0) printf("NO\n");
for(i=2;i<=x/2;i++)
for(i=2;i<=sqrt(x);i++);
}
第十行不加冒号时出错信息为:
C:\Documents and Settings\w\桌面\111\project\1.c(11) : error C2143: syntax error : missing ';' before '}'
展开
 我来答
hap487
推荐于2017-09-10 · TA获得超过282个赞
知道答主
回答量:116
采纳率:0%
帮助的人:196万
展开全部
1,这样的程序一般都要用BREAK之类的,以便提前退出循环
2,FOR后面不用跟;,但是需要跟句子啊,FOR的作用域就是到它后面的;(没有{}的情况下)。就算是跟空句子也要用一个;表示空句子啊!
3,你的程序后面两个循环每必要啊!
#include<stdio.h>
#include<math.h>
main()
{
int i,x;
scanf("%d",&x);
for(i=2;i<=x-1;i++)
if(x%i==0)
{
printf("NO\n");
BREAK;
}
IF(i==x)printf("Yes\n");
}
pzhaoyang
2009-07-05 · TA获得超过129个赞
知道小有建树答主
回答量:280
采纳率:0%
帮助的人:217万
展开全部
一个for循环必须有循环体。但是循环体如果是空的话分号已不能省略。就像第十行。没有循环体。

你是循环输出当满足循环条件x%i==0时输出一个“NO”如果是24 这在这个for 中就输出6个 24%2==0 24%3==0 24%4==0 24%6==0 24%8==0 24%12==0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
四字多一半
2013-03-30 · TA获得超过137个赞
知道答主
回答量:33
采纳率:0%
帮助的人:7.9万
展开全部
#include <stdio.h>#include <math.h>
main(){
int i, x;
scanf("%d", &x);
for(i=2; i<=x-1; i++)
{
if(x%i==0)
{
printf("No\n");
break;
}
}
if(i==x)
printf("Yes\n");
}
这个程序里的括号分明,有助于看看程序的结构,希望对初学者能有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式