大佬們幫我看看吧,
#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("小明坐車(chē)的總費(fèi)用為%.1f\n",money(9,12)+money(18,12));
? ? return 0;
}
我這個(gè)是對(duì)的,輸出結(jié)果是69.40,但我想問(wèn)一下最后的把“%.1f“換成“%d“輸出的結(jié)果是12了,為什么不是69整數(shù)呢,我還以為會(huì)被小數(shù)消了而已。
2018-08-07
因?yàn)槟阋敵龅念?lèi)型和你的變量的類(lèi)型不符合啊,所以輸出的值肯定不對(duì),如果你用強(qiáng)制性轉(zhuǎn)換類(lèi)型就沒(méi)問(wèn)題了;
比如你用%d輸出,printf的那個(gè)語(yǔ)句改為"printf("小明坐車(chē)的總費(fèi)用為%d\n",(int)(money(9,12)+money(18,12)));"就好了