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

大佬们帮我看看吧,

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

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

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

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

金木丶研 提问者

谢谢大佬,我懂了
2018-08-08 回复 有任何疑惑可以回复我~
#2

修裾欲溯空 回复 金木丶研 提问者

不用谢
2018-08-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       927286    人
  • 解答问题       21537    个

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

进入课程

大佬们帮我看看吧,

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号