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

来源:5-14 综合练习

小小贝勒爷

2019-05-05 11:22

#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回答

  • qq_慕无忌150280
    2019-05-06 23:25:20
    已采纳

    #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;

    }


    小小贝勒爷

    能解释一下为什么原来会出现92吗

    2019-05-08 22:00:01

    共 3 条回复 >

  • 浪子2017
    2019-05-08 16:56:58

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

  • A_海洋
    2019-05-08 14:57:35

    类型的问题吧

  • 小小贝勒爷
    2019-05-05 12:19:28

    https://img2.mukewang.com/5cce64320001478c14151135.jpg

    求大神们指教!!!

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题