lidashent 2019-03-26 09:11 采纳率: 0%
浏览 244

c语言,编程,不知道哪里错了,感觉没错....

图片说明
这个代码是错误的,我只是想输入一个数字,然后提示是不是素数而已,现在出错了,我没有看懂错在哪里,大神指点下


现在可以了,已经解决

#include<stdio.h>
int ok_or_no(int a)
{
            int i;
            if(a==2)
            {
                return 0;
            }
            a=(int)a/2+1;
            for(i=2;i<a;i++)
            {
                    if(a%i==0)
                    {
                            return 1;
                    }
            }
            if(a>1)
            return 0;
            else return 1;
}
int main()
{

    int even_my=0;
    scanf("%d",&even_my);
    if(ok_or_no(even_my))
    {
        printf("%s","这不是个素数\n");
    }
    else
    {
        printf("%s","这是个素数\n");
    }

    return 0;
}


  • 写回答

3条回答 默认 最新

  • wusuobuwei_1 2019-03-26 09:29
    关注

    函数int ok_or_no(int a):int a=0;与形参 int a 重定义了

    评论
  • 回到未来望过去 2019-03-26 10:35
    关注

    int ok_or_no(int a)
    {

    a=(int)a/2+1;
    int i=0;
    for(i=2;i<a;i++)
    {
        if(a%i==0)
        {
            return 1;
        }
    }
    return 0;
    

    }

    评论
  • ZakaryBin 2019-03-26 10:45
    关注

    *函数声明放main前;应该先定义变量再运算,还有函数参数a与定义的a重复了

    #include <stdio.h>
    
    int ok_or_no(int a);
    
    int main()
    {
        int even_my=0;
        scanf("%d",&even_my);
        if(ok_or_no(even_my))
        {
            printf("%s","这不是个素数\n");
        }
        else
        {
            printf("%s","这是个素数\n");
        }
    
        return 0;
    }
    int ok_or_no(int a)
    {
        int i=0;
        a=(int)a/2+1;
    
        for(i=2;i<a;i++)
        {
            if(a%i==0)
            {
                return 1;
            }
        }
        return 0;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 【通信原理】为什么传信率不变?频带利用率为啥没有二倍
  • ¥15 CANOPEN SDO
  • ¥15 r语言数据集循环获取问题
  • ¥30 求佬们帮助,总是出bug,求佬们解决一下bug
  • ¥15 后端Java转换字符串传给前端,前端如何解析呢?
  • ¥15 psychopy(python为基础的)中引入cmd
  • ¥15 不知道怎么去做关于前端电子请柬
  • ¥15 Ubuntu22.04打开是tty界面。提示OOM
  • ¥15 存储过程或函数中的结果集类型变量如何使用。
  • ¥100 关于海信电视聚好看安装应用的问题