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

为什么最后一个printf中的%f换成%d,答案就完全错误了?

#include <stdio.h>

double qian(float sj,float km)//sj是时间,km是行驶距离

{

    double money;

    if(km>=0&&km<=3){money=14;}

    else if(km>3){

        if((sj<5&&sj>=0)||(sj>=23&&sj<=24)){money=14+(km-3)*2.3*1.2;}

        else if(sj>=5&&sj<23){money=14+(km-3)*2.3;}

        else{printf("%s\n","时间输入错误!只能是0时到24时!");}

    }

    else{

        printf("%s\n","距离输入错误!只能不小于0的数!");

    }

    return money;

}


int main()

{

    double money=qian(9,12)+qian(18,12);

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

    return 0;

}


提问者:菓子 2017-07-22 16:39

个回答

  • qq_红白怪_0
    2017-07-22 17:46:00

    你写%d,就是把你传进去的变量当个int,不是做取整转换,只是当成了int