为了账号安全,请及时绑定邮箱和手机立即绑定

求大神分析:为什么我的结果是96.00000不是69.400000呢?明明已经输出上午和下午的是34.70000了,为什么做个加法就错了啊?

#include <stdio.h>

int cost(int k, int t)

{

    float m;

    m = 13.0;

    if(k<3)

    {

        m = m + 1;

        printf("小明每天打车的总费用为%f元\n",m);

    }

    else

    {

        if(t>23&&t<5)

        {

            m = m + (k-3)*2.3*1.2 + 1;

            printf("小明每天打车的总费用为%f元\n",m);

        }

        else

        {

            m = m + (k-3)*2.3 + 1;

            printf("小明每天打车的总费用为%f元\n",m);

        }

    }

}

int main()

{

    float total;

    total = cost(12,9) + cost(12,18);

    printf("小明每天打车的总费用为%f元\n",total);

    return 0;

}

正在回答

4 回答

#include <stdio.h>


double cost(int t)


{


    double m;

int k=12;

    m = 13.0;

    if(k<3)

    {

        m = m + 1;

        printf("小明每天打车的总费用为%f元\n",m);

return m;

    }

    else

    {

        if(t>23&&t<5)

        {

            m = m + (k-3)*2.3*1.2 + 1;

            printf("小明每天打车的总费用为%f元\n",m);

return m;

        }

        else

        {

            m = m + (k-3)*2.3 + 1;

            printf("小明每天打车的总费用为%f元\n",m);

return m;

        }

    }

}


int main()


{

    double total;

int k=12;

    total = cost(9) + cost(18);

    printf("小明每天打车的总费用为%f元\n",total);

    return 0;

}


0 回复 有任何疑惑可以回复我~
#1

小小贝勒爷 提问者

为什么不用float呢?
2019-05-08 回复 有任何疑惑可以回复我~
#2

小小贝勒爷 提问者

这个改好了的代码在慕课网上完美运行结果也没问题 但是我拿到ubuntu16.04的gcc编译器上编译之后 最后的total值为NAN呢?
2019-05-08 回复 有任何疑惑可以回复我~
#3

小小贝勒爷 提问者

能解释一下为什么原来会出现92吗
2019-05-08 回复 有任何疑惑可以回复我~

if(t>23&&t<5) 这里应该是if(t>23||t<5) 吧

0 回复 有任何疑惑可以回复我~

类型的问题吧

0 回复 有任何疑惑可以回复我~

https://img1.sycdn.imooc.com//5cce64320001478c14151135.jpg

求大神们指教!!!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求大神分析:为什么我的结果是96.00000不是69.400000呢?明明已经输出上午和下午的是34.70000了,为什么做个加法就错了啊?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信