運(yùn)行成功,但計(jì)算結(jié)果不對(duì)
#include <stdio.h>
? ? int cal(int km, int tm)
? ? {
? ? float start = 13;
? ? float ppk = 2.3;
? ? float price;
? ??
? ? if(km<=3)
? ? {
? ? ? ? price = (start+1)*2;
? ? printf("打車總費(fèi)用為%f元。", price);
? ? }
? ? else if(0<=tm<5 || tm>=23)
? ? {
? ? ? ? price = (start + ppk*(km-3)*1.2+1)*2;
? ? printf("打車總費(fèi)用為%f元。", price);
? ? }
? ? else?
? ? {
? ? ? ? price = (start+ ppk*(km-3) + 1)*2;
? ? printf("打車總費(fèi)用為%f元。",price);
? ? }
? ? return price;
? ? }
int main()
{
? ? cal(12,9);
? ??
return 0;
}
計(jì)算結(jié)果用了第二種情況,加了20%,但看起來(lái)邏輯沒(méi)錯(cuò)呀?
求大神
2019-06-02
自創(chuàng)函數(shù)定義的時(shí)候返回值應(yīng)為float型的而不是int型
2019-05-27
? 0<=tm<5 || tm>=23等價(jià)于(0<=tm)<5||tm>=23,你這樣子寫系統(tǒng)會(huì)先判斷0<=tm(24進(jìn)制的時(shí)間里必定成立),等于1,再判斷1<5,成立,則不判斷是否大于23。c語(yǔ)言里連續(xù)的判斷,要寫寫成tm>=0&&tm<5||tm>=23,