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;
}
展开
 我来答
该问答中所提及的号码未经验证,请注意甄别。
shine1991
科技发烧友

推荐于2018-05-20 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
#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 会造成子函数结束。
追问
噢噢,这样啊,谢谢你~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式