請各位看看我的小程序哪不對。。
#include<stdio.h>
int taxi(int distance,int hour)
{
? ? int money;
? ? if(hour<=5 ?|| ?hour>=23);
? ? {
? ? ? ? money=(distance-3)*2.3*1.2+1+13;
? ? ? ? return money;
? ? }
? ? else
? ? {
? ? ? ? money=(distance-3)*2.3+1+13;
? ? ? ? return money;
? ? }
}
int main()
{
? ? int money;
? ? int moneyInAll=taxi(12,24)+taxi(12,7);
? ? printf("%d\n",money);
? ? return 0;
}
2015-08-04
money 是int 型,? int型數據經過和小數一起運算后會自動轉成float型, 存儲數據類型錯了, 把money改成double或者 float
錯誤處挺多的,不一一講了,自己對著看下
#include<stdio.h>
double taxi(int distance,int hour)?????
{
??? double money_1;????????? // 可以不改成_1?? 局部變量與全局變量同名時,用到局部部分,就屏蔽外部變量
??? if(hour<=5? ||? hour>=23)
??? {
??????? money_1=(distance-3)*2.3*1.2+1+13;
??????? return money_1;
??? }
??? else
??? {
??????? money_1=(distance-3)*2.3+1+13;
??????? return money_1;
??? }
}
int main()
{
??? double money=0;
??? double moneyInAll=taxi(12,24)+taxi(12,7);
??? printf("%f\n",moneyInAll);??? //這里你并沒有用moneyInAll,輸出的值是money,如果不改
? ??????????????????????????????????????????? ???//money也沒賦值的話,就會輸出一大串數字,并不能得到準確的值。
??? return 0;
}
2015-08-04
我試了一下,在taxi函數里 必須是money_1 ?而 不可以是money ?,否則程序運行的結果就是0.000000