
一个简单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 '}' 展开
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 '}' 展开
3个回答
展开全部
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");
}
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");
}
展开全部
一个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
你是循环输出当满足循环条件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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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");
}
这个程序里的括号分明,有助于看看程序的结构,希望对初学者能有帮助。
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");
}
这个程序里的括号分明,有助于看看程序的结构,希望对初学者能有帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询