請(qǐng)各位看看我的小程序哪不對(duì)。。
#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型數(shù)據(jù)經(jīng)過和小數(shù)一起運(yùn)算后會(huì)自動(dòng)轉(zhuǎn)成float型, 存儲(chǔ)數(shù)據(jù)類型錯(cuò)了, 把money改成double或者 float
錯(cuò)誤處挺多的,不一一講了,自己對(duì)著看下
#include<stdio.h>
double taxi(int distance,int hour)?????
{
??? double money_1;????????? // 可以不改成_1?? 局部變量與全局變量同名時(shí),用到局部部分,就屏蔽外部變量
??? 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也沒賦值的話,就會(huì)輸出一大串?dāng)?shù)字,并不能得到準(zhǔn)確的值。
??? return 0;
}
2015-08-04
我試了一下,在taxi函數(shù)里 必須是money_1 ?而 不可以是money ?,否則程序運(yùn)行的結(jié)果就是0.000000