题目:写一个判断素数的函数,在主函数输入一个数,输出是否为函数的信息。

#include<stdio.h>

int s(int x)

{int i,y;

for (i=0;i<x;i++)

if(x%i==0)y=0;

else y=1;

return y;

}

main()

{int x;

scanf("%d",&x);

if(s(x)==0)printf("%d is a prime\n",x);

else printf("%d is not a prime\n",x);

return 0;}

这哪里错了啊,求指证!

慕粉1255086625
浏览 2528回答 1
1回答

望远

#include<stdio.h> int s(int x) { int i,y; for (i=2;i<x;i++)//i应该从2开始判断,不能%0 if(x%i==0) { y=0; break;//一旦不是素数,就应该跳出当前循环 } else y=1; return y; } main() { int x; scanf("%d",&x); if(s(x)==1)//这里的条件应该是返回值==1 printf("%d is a prime\n",x); else  printf("%d is not a prime\n",x); return 0; }
打开App,查看更多内容
随时随地看视频慕课网APP