查半天,大佬幫我看看錯哪了
#include <stdio.h>
??? float daycar(td,d){
??? return money(td,d);???
??? }
??? float money(t,d){
??? float money;
??? if(d<=3)
??? money=13;
??? return money;
??? else{
??? if(t>=23&&t<=5)
??? money=(d-3)*2.3*1.2+13;
???? else {?
??? money=(d-3)*2.3+13;???
??????? }
??????? return money;
??? }
??? float afternooncar(tn,d){
??? return money(tn,d);???
??? }
int main()
{??
int td=8;
int tn=18;
int d=12;
??? printf("小明每天打車費用%f",daycar(td,d)+afternooncar(tn,d));????
???
??? return 0;
}
2019-02-25
三處比較明顯的錯誤:
(1)函數參數td,d,t未定義,就直接使用了,應改為(int td,int d)。
(2)if-else語句多重分支情況,中間應使用else if(條件),同時if-else條件下存在多于一條的執行語句時,要用花括號括起來。
(3)自定義函數調用,應該在寫完這個自定義函數之后,否則就要在函數最前面聲明,上述編程中money調用在定義之前。
最后,附上修改完的程序:
#include <stdio.h>
? ? float money(int t, int d)
? ? {
? ? ? ? float money;
? ? ? ? if(d<=3)
? ? ? ? {
? ? ? ? ? ? money=13;
? ? ? ? ? ? return money;
? ? ? ? }
? ? ? ? else if(t>=23&&t<=5)
? ? ? ? {
? ? ? ? ? ? money=(d-3)*2.3*1.2+13;
? ? ? ? }
? ? ? ? else?
? ? ? ? {??
? ? ? ? ? ? money=(d-3)*2.3+13;? ??
? ? ? ? }
? ? ? ? return money;
? ? }
? ? float daycar(int td,int d)
? ? {
? ? ? ? return money(td,d);? ??
? ? }
? ? float afternooncar(int tn,int d)
? ? {
? ? ? ? return money(tn,d);? ??
? ? }
int main()
{? ?
int td=8;
int tn=18;
int d=12;
? ? printf("小明每天打車費用%f",daycar(td,d)+afternooncar(tn,d));? ??
? ? return 0;
}