我不知道我的程序錯在哪里了,運行錯誤
#include <stdio.h>
float taxifee(int clock,int miles)
{
??? float money;
??? if(miles<=3)
??? {
??????? money=14;
??????? printf("費用為14\n");
??? }
??? else
??? {
??????? if(clock>=23 || clock<5)
??????? {
??????????? money=13+1+2.3*(miles-3)*1.2;
??????????? printf("夜間車費為:%f\n",money);
??????? }
??????? else
??????? {
??????????? money=13+1+2.3*(miles-3);
??????????? printf("日間車費為:%f\n",money);
??????? }
??? }
???
??? return money;???
}
int main()
{
??? printf("打的總費用:%.1f\n",taxifee(9,12)+taxifee(18,12));
??? return 0;
}
2019-04-09
money=13+1+2.3*(miles-3)*1.2? 這一條得到的結果應該是雙精度,而定義taxifee為單精度,所以需要強制轉換,把float?taxifee? 換成? double?taxifee試一試??????//新手的個人理解
2019-04-09
float taxifee(int clock,int miles)
{
? ? float money;
? ? if((clock<23 || clock>=5)&&miles>3)
? ? {
? ? ? ? money=13+1+2.3*(miles-3);
? ? ? ? printf("日間車費為:%f\n",money);
? ? ? ?
? ? }
? ?else if ((clock>=23 || clock<5)&&miles>3)
? ? {
? ? ? ? money=13+1+2.3*(miles-3)*1.2;
? ? ? ? printf("夜間車費為:%f\n",money);
? ? }
? ? else
? ? {
? ? ? ? money=14;
? ? ? ? printf("費用為14\n");?
? ? }
? ? return money;? ?
}
int main()
{
? ? printf("打的總費用:%.1f\n",taxifee(9,12)+taxifee(18,12));
? ? return 0;
}
可以用個if else嵌套,我也剛學,互相指點指點……
2019-04-07
#include <stdio.h>
float taxifee(int clock,int miles)
{
??? float money;
??? if(miles<=3)
??? {
??????? money=14;
??????? printf("費用為14\n");
??? }
??? if(clock>=23 || clock<5)
??? {
??????? money=13+1+2.3*(miles-3)*1.2;
??????? printf("夜間車費為:%f\n",money);
??? }
??? else
??? {
??????? money=13+1+2.3*(miles-3);
??????? printf("日間車費為:%f\n",money);
??? }
??? return money;? ?
}
int main()
{
??? printf("打的總費用:%.1f\n",taxifee(9,12)+taxifee(18,12));
??? return 0;
}
我覺得時間條件跟路程條件應該是并列關系,但是路程條件應該在前面。