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

来源:5-14 综合练习

菓子

2017-07-22 16:39

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

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

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

    菓子

    因为前面money是double型,所以在这里直接用%d而没有事先进行转换,就会出现错误吗?

    2017-07-23 10:39:48

    共 1 条回复 >

C语言入门

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

926025 学习 · 20793 问题

查看课程

相似问题