c语言的一道题,运行后答案部分错误,请教一下大神们逻辑哪里有错误?拜托拜托啦!急
题目:一个正整数n是素数:除了1和n不能被其他数整除。1不是素数。-------------------------编写一个函数用于判定一个正整数是不是素数。用C语言实现...
题目:一个正整数n是素数:除了1和n不能被其他数整除。1不是素数。
-------------------------
编写一个函数用于判定一个正整数是不是素数。
用C语言实现:append.c中函数原型为
int is_primer(int num);
功能:若num为素数返回1,否则返回0。
我编写的代码:#include <stdio.h>
#include <stdlib.h>
int is_primer(int n)
{
int i;
if(n==2)
return 1;
if(n==1)
return 0;
if(n>2)
{
for(i=2;i<n;i++)
{if(n%i==0)
return 0;
else
return 1;
};
};
}
int main()
{
int num;
while(scanf("%d", &num) != EOF)
{
if(is_primer(num))
puts("YES");
else
puts("NO");
}
return 0;
} 展开
-------------------------
编写一个函数用于判定一个正整数是不是素数。
用C语言实现:append.c中函数原型为
int is_primer(int num);
功能:若num为素数返回1,否则返回0。
我编写的代码:#include <stdio.h>
#include <stdlib.h>
int is_primer(int n)
{
int i;
if(n==2)
return 1;
if(n==1)
return 0;
if(n>2)
{
for(i=2;i<n;i++)
{if(n%i==0)
return 0;
else
return 1;
};
};
}
int main()
{
int num;
while(scanf("%d", &num) != EOF)
{
if(is_primer(num))
puts("YES");
else
puts("NO");
}
return 0;
} 展开
提示该问答中所提及的号码未经验证,请注意甄别。
2个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
int is_primer(int n)
{
int i;
if(n==2)
return 1;
if(n==1)
return 0;
if(n>2)
{
for (i=2;i<n;i++)
{
if(n%i==0)
return 0; //else
//return 1;
}
;
}
return 1;
}
int main()
{
int num;
while(scanf("%d", &num) != EOF)
{
if(is_primer(num))
puts("YES"); else
puts("NO");
}
return 0;
}
追问
和我的哪里不一样呀⊙_⊙
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-05-20
展开全部
问题在: 你的 for 循环只执行了一次就返回了,所以逻辑错误。
注意:return 会造成子函数结束。
注意:return 会造成子函数结束。
追问
噢噢,这样啊,谢谢你~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询