金木丶研
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整数呢,我还以为会被小数消了而已。
因为你要输出的类型和你的变量的类型不符合啊,所以输出的值肯定不对,如果你用强制性转换类型就没问题了;
比如你用%d输出,printf的那个语句改为"printf("小明坐车的总费用为%d\n",(int)(money(9,12)+money(18,12)));"就好了
C语言入门
926866 学习 · 21014 问题
相似问题