浅草浪人 2023-07-11 09:09 采纳率: 0%
浏览 34

可以帮我看看这个身高预测的代码哪里有问题吗?

img

img


这里只输入父亲的身高,还没输入母亲的身高就直接开始预测身高了,自己检查了好几遍也没看出来代码哪里出了问题

  • 写回答

5条回答 默认 最新

  • Lee哈 新星创作者: 前端开发技术领域 2023-07-11 10:31
    关注

    你的函数返回值有问题,你的这一行代码在执行之后会将计算的结果变成浮点数,你接收的时候也应该用浮点数,可以用float或者double

    img


    你可以这样修改

    #include <stdio.h>
    int childHight(int FHight, int MHight);
    int main()
    {
        int m_FHight;
        int m_MHight;
        int result;
        printf("请输入父亲的身高:\n");
        scanf("%d" ,&m_FHight);
        printf("请输入母亲的身高:\n");
        scanf("%d",&m_MHight);
        result=childHight(m_FHight,m_MHight);
        printf("预测孩子的身高:");
        printf("%d",result);
        return 0;
    }
    int childHight(int FHight, int MHight){
            int result=(int)(FHight+MHight)*0.54;  //这一行代码会将你的计算结果强制转换为int整形
            return result;
    }
    

    也可以这样修改

    #include <stdio.h>
    float childHight(int FHight, int MHight);
    int main()
    {
        int m_FHight;
        int m_MHight;
        float result;
        printf("请输入父亲的身高:\n");
        scanf("%d" ,&m_FHight);
        printf("请输入母亲的身高:\n");
        scanf("%d",&m_MHight);
        result=childHight(m_FHight,m_MHight);
        printf("预测孩子的身高:");
        printf("%.0f",result);  //在输出时可以设置保留的位数,像我这样就是保留0位的小数,输出也就是整数了
        return 0;
    }
    float childHight(int FHight, int MHight){
            float result=(FHight+MHight)*0.54;
            return result;
    }
    

    这是运行结果图

    img

    如果我的回答对你有帮助,请给我个采纳谢谢

    评论

报告相同问题?

问题事件

  • 创建了问题 7月11日