m0_57717048
2021-07-10 10:32
采纳率: 77.8%
浏览 20

c语言,请问这个代码是哪里的错误啊?

#include <stdio.h>
#include <math.h>
int main()
{
    int num;
    while(scanf("%d", &num) != EOF)
    {
        if(is_primer(num))
            puts("YES");
        else
            puts("NO");
    }
    return 0;
}
int is_primer(int a)
{
    int i;
    if(a==1)
        return 0;
    for(i=2;i<=(int)sqrt(a);i++)
        if(a%i==0)
        return 1;
    return 0;
}

img

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • qzjhjxj 2021-07-10 10:37
    已采纳

    int is_primer(int a);函数未声明,is_primer()判断素数的函数里,最后两个 return 写反了,修改如下,供参考:

    #include <stdio.h>
    #include <math.h>
    
    int is_primer(int a);//这里缺了函数的声明
    
    int main()
    {
        int num;
        while(scanf("%d", &num) != EOF)
        {
            if(is_primer(num))
                puts("YES");
            else
                puts("NO");
        }
        return 0;
    }
    
    int is_primer(int a)
    {
        int i;
        if(a==1)
            return 0;
        for(i=2;i<=(int)sqrt(a);i++)
            if(a%i==0)
               return 0;//return 1;
        return 1;       //return 0;
    }
    
    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • m0_57717048 2021-07-10 10:33
    int main()
    {
        int num;
        while(scanf("%d", &num) != EOF)
        {
            if(is_primer(num))
                puts("YES");
            else
                puts("NO");
        }
        return 0;
    }
    

    oj题目,显示wrong answer

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题