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

运行结果为什么是69.400002

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

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

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

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

担当小佩佩 提问者

非常感谢!
2018-04-20 回复 有任何疑惑可以回复我~
#2

担当小佩佩 提问者

pay=(13+(dis-3)*2.3+1)+(13+(dis-3)*2.3+1) 当dis=12的时候输出不是应该是69.4吗。为什么运行结果是69.400002
2018-04-20 回复 有任何疑惑可以回复我~
#3

蓝殇599293 回复 担当小佩佩 提问者

因为你选的是float
2018-06-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

运行结果为什么是69.400002

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