问答详情
源自:5-14 综合练习

为什么我输出的答案是68 整数 不是69.4呢

#include <stdio.h>

float tim,km,money;

int part(float tim,float km)

{

    if(tim>5&&tim<23)

    {

        if(km<=3)

        {

        money=14;

        }

        else 

        {

            money=13+(km-3)*2.3+1;

            printf("白天费用为%f\n",money);

            }

        return money;

    }

    else if(tim>=23||tim<=5)

    {

        if (km<=3)

        money=14;

        else 

        {money=13+(km-3)*2.3*1.2+1;

        printf("晚上天费用为%f",money);}

        return money;

    }  

    else

    return 0;

    

    

}



int main()

{   

    float sum;

    sum=part(9,12)+part(18,12);

    printf("小明每天打车的总费用是%.1f元\n",sum);

    return 0;

}




输出的结果:

白天费用为34.700001
白天费用为34.700001
小明每天打车的总费用是68.0元


提问者:坚持下去灬 2019-09-03 10:16

个回答

  • qq_慕慕7166404
    2019-09-03 14:12:06
    已采纳

    条件判断语句就有问题了,时间大于等于23或者时间小于5,并不是小于等于

  • 慕UI3423937
    2019-09-26 10:41:57

    part 执行结果应该是34.7  为什么后面还有0001

  • qq_冷眸cruel_0
    2019-09-07 10:46:18

    因为你的part函数定义为int,应该是这个原因吧