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

为什么最后一个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;

}


正在回答

1 回答

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

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

菓子 提问者

因为前面money是double型,所以在这里直接用%d而没有事先进行转换,就会出现错误吗?
2017-07-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

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