大佬们帮我看看吧,

来源:5-14 综合练习

金木丶研

2018-08-07 12:28

#include <stdio.h>

float money(int sj,int juli)

{

    float qian=0;

    float danjia=2.3;

    int qibu=14;

    if(!(sj>=5&&sj<23))

    {

        danjia*=1.2;

    }

    if(juli>3)

    {

        qian=qibu+(juli-3)*danjia;

    }

    else

    {

        qian=qibu;

    }

    return qian;

}

int main()

{

    printf("小明坐车的总费用为%.1f\n",money(9,12)+money(18,12));

    return 0;

}

我这个是对的,输出结果是69.40,但我想问一下最后的把“%.1f“换成“%d“输出的结果是12了,为什么不是69整数呢,我还以为会被小数消了而已。

写回答 关注

1回答

  • 修裾欲溯空
    2018-08-07 15:58:32
    已采纳

    因为你要输出的类型和你的变量的类型不符合啊,所以输出的值肯定不对,如果你用强制性转换类型就没问题了;

    比如你用%d输出,printf的那个语句改为"printf("小明坐车的总费用为%d\n",(int)(money(9,12)+money(18,12)));"就好了

    修裾欲溯空 回复金木丶研

    不用谢

    2018-08-08 14:41:22

    共 2 条回复 >

C语言入门

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

926866 学习 · 21014 问题

查看课程

相似问题