运行结果为什么是69.400002

来源:5-14 综合练习

担当小佩佩

2018-04-13 23:33

#include <stdio.h>

 float costMoney(int tim1,int tim2,int dis )//tim1上班时间,tim2下班时间,dis上班里程数

    {

        float pay;

        if(tim1>=23&&tim1<5&&tim2>=23&&tim2<5)//上下班均在凌晨

        {

            if(dis<=3)

            {

                pay=13+0.2*dis;

            }

            else 

            {

                pay=(13+(dis-3)*2.3+1)+0.2*dis+(13+(dis-3)*2.3+1)+0.2*dis;

            }

        }

        else if(tim1<23&&tim1>=5&&tim2>=23&&tim2<5)//正常上班,凌晨下班

        {

             if(dis<=3)

            {

                pay=13;

            }

            else 

            {

                pay=(13+(dis-3)*2.3+1)+0.2*dis+(13+(dis-3)*2.3+1);

            }

        }

        else if(tim1>=23&&tim1<5&&tim2<23&&tim2>=5)//凌晨上班,正常下班

        {

             if(dis<=3)

            {

                pay=13;

            }

            else 

            {

                pay=(13+(dis-3)*2.3+1)+(13+(dis-3)*2.3+1)+0.2*dis;

            }

        }

            else if(tim1<23&&tim1>=5&&tim2<23&&tim2>=5)//正常上班,正常下班

        {

             if(dis<=3)

            {

                pay=13;

            }

            else 

            {

                pay=(13+(dis-3)*2.3+1)+(13+(dis-3)*2.3+1);

            }

        }

        return pay;

    }

int main()

{

    printf("小明每天打车的总费用为%f\n",costMoney(9,6,12));

    return 0;

}


写回答 关注

1回答

  • qq_241随心_0
    2018-04-14 14:10:20
    已采纳

    因为你输入的9,6,12这个参数只有最后            pay=(13+(dis-3)*2.3+1)+(13+(dis-3)*2.3+1);

    满足,其他都不满足,提醒一下你之前的判断设置有些问题,整数>23&&<5,这样的数是不存在的

    蓝殇5992... 回复担当小佩佩

    因为你选的是float

    2018-06-10 16:26:36

    共 3 条回复 >

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题