為什么單獨計算都是對的,反而算總和的時候就不對呢
#include <stdio.h>
int fee(int h,int s)
{? ?
? ? double sum;
? ? if(s>3)
? ? {? ? if((h>=23&&h<=24)||(h>=0&&h<5))
? ? ? ? {
? ? ? ? ? ? sum=13+(s-3)*2.3*1.2;
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? sum=13+(s-3)*2.3;
? ? ? ? }
? ? }
? ? else
? ? {
? ? ? ? sum=13;
? ? ? ??
? ? }
? ? sum++;
? ? printf("小明%d時乘車%d公里花費%.1f\n",h,s,sum);
? ? return sum;
}
int main()
{? ?
? ? double sum1=fee(9,12);
? ? double sum2=fee(18,12);
? ? double sum=sum1+sum2;
? ? printf("小明共花費%.1f\n",sum);
? ? return 0;
}
2021-07-28
因為定義fee函數用的是int,所以返回的時候本來是34.7,結果返回了34.所以只要把int改成double,用double定義fee函數就可以了