為什么最后一個printf中的%f換成%d,答案就完全錯誤了?
#include <stdio.h>
double qian(float sj,float km)//sj是時間,km是行駛距離
{
? ? double money;
? ? if(km>=0&&km<=3){money=14;}
? ? else if(km>3){
? ? ? ? if((sj<5&&sj>=0)||(sj>=23&&sj<=24)){money=14+(km-3)*2.3*1.2;}
? ? ? ? else if(sj>=5&&sj<23){money=14+(km-3)*2.3;}
? ? ? ? else{printf("%s\n","時間輸入錯誤!只能是0時到24時!");}
? ? }
? ? else{
? ? ? ? printf("%s\n","距離輸入錯誤!只能不小于0的數(shù)!");
? ? }
? ? return money;
}
int main()
{
? ? double money=qian(9,12)+qian(18,12);
? ? printf("小明每天打車的總費用為%f元",money);
? ? return 0;
}
2017-07-22
你寫%d,就是把你傳進去的變量當個int,不是做取整轉(zhuǎn)換,只是當成了int