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