這輸出怎么不對啊,輸入9 12 結果不正確,哪錯了
#include <stdio.h>
int main()
{
? ? int time(float t);
? ? float result(float n);
? ? float t,n,a,b,c;
? ? scanf("%f%f",&t,&n);
? ? a=result(n);
? ? scanf("%f%f",&t,&n);
? ? b=result(n);
? ? c=a+b;
? ? printf("總車費為%f\n",c);
? ??
? ? return 0;
}
int time(float t)
{
? ??
? ? if(t>=23 || t<5)
? ? return 0;
? ? else
? ? return 1;
}
float result(float n)
{
? ? float a,t;
? ? if(time(t))
{
if(n<=3)
? ? {
? ? ? ? a=13+1;
? ? ? ? printf("車費為%f\n",a);
? ? }
? ? else
? ? {
? ? ? ? a=13+1+(2.3)*(n-3);
? ? ? ? printf("車費為%f\n",a);
? ? }
}
? ? if(!time(t))
? ? {
? ? ? ? if(n<=3)
? ? ? ? {
? ? ? ? ? ? a=13+1;
? ? ? ? ? ? printf("車費為%f\n",a);
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? a=13+1+2.3*1.2*(n-3);
? ? ? ? ? ? printf("車費為%f\n",a);
? ? ? ? }
? ? ? ??
? ? }
? ? return a;
}
2021-11-14
首先你定義的自創函數time沒有調用;第二,你定義的有問題,mian函數里定義的t是局部變量,而float result(float n)里定義的變量t只在這里面產生作用,與mian函數里的區別。float result(float n)定義的int型t沒有賦值,所以默認復制0。
當上面的寫成!time(n)時間,那么就執行,如果下面寫成!time(n)就下面的執行。
? ? ? ? ? ? ? ? ? ? ?