求大佬解答哪里不對(duì)
#include <stdio.h>
int charge(float clock,float mile)
{
??? float money;
??? if(clock<5&&clock>=23)
??? {
??????? if(mile<=3)
??????? {
??????????? money=14;
??????? }
??????? money=13+((mile-3)*2.76)+1;
??? }
??? else
??? {
??????? money=13+((mile-3)*2.3)+1;
??? }
??? return money;
}
int main()
??? {
??? printf("%.2f",charge(9,12)+charge(18,12));
??? return 0;
??? }
2018-11-21
自定義函數(shù)為int型,與形參,實(shí)參均不符
“ if(mile<=3)
??????? {
??????????? money=14;
??????? }
??????? money=13+((mile-3)*2.76)+1; ”
此執(zhí)行體中漏了 else
else的情況中也要分mile是大于3,還是小于3.
出租車收費(fèi)問(wèn)題中應(yīng)該要注意到超過(guò)3公里后不足1公里也會(huì)按1公里收費(fèi),所以涉及到一個(gè)取整的問(wèn)題。這里注意,在自定義函數(shù)中,無(wú)法調(diào)用【 】取整符號(hào),可以通過(guò)自定義int型變量來(lái)實(shí)現(xiàn)。
2018-11-21
取整中還要注意,當(dāng)公里數(shù)為整數(shù)與非整數(shù)時(shí),費(fèi)用計(jì)算的差異。
參考代碼:
? ? ? ? int p;
? ? ? ? p=mile-3;
? ? ? ? money=14+p*2.3;
? ? ? ? if(money<(14+(mile-3)*2.3))
? ? ? ?money+=2.3;
(祝你敲出完美的代碼?。?/p>