截图代码输出结果为:
白天花费12元
白天花费18元
小明打的总费用:83.2
18行:money = b + d + a * ( km - c ) * 0.2;
改为:money = b + d + a * ( km - c ) * 1.2;
乘0.2? 乘0.2恐怕还没有他本身大,应该是*1.2
24行:printf("白天花费%d元\n",money);
改为:printf("白天花费%.1f元\n",money);
好像是数据类型的问题;
30行:printf("小明打的总费用:%.1f\n",fees(9,12)+fees(12,18));
改为:printf("小明打的总费用:%.1f\n",fees(9,12)+fees(18,12));
PS:你这不是自己写的吧,第二行标注的)/*定义函数,时间time、距离kilometer*/你写个距离+时间,写反了
if(km <= 3)
这里也可以加上if判断语句判断时间,
加个判断时间为上班还是下班,上班输出上班,下班输出下班
#include <stdio.h>//头文件 float fees(int time,int kilometer)/*定义函数,时间time、距离kilometer*/ { float a = 2.3;//每公里单价计费 int b = 13;//3公里起步价 int c = 3;//包含公里数 int d = 1;//燃油费 double money;//花费 int km = kilometer; if(km <= 3) { money = b + d; printf("小明花费%d元\n",money); } else if( time >= 23 || time < 5 ) { money = b + d + a * ( km - c ) * 1.2; if(time>4 || time<12){ printf("上班花费%.1f元\n",money); } else{ printf("下班花费%.1f元\n",money); } } else { money = b + d + a * ( km - c ); if(time>4 || time<12){ printf("上班花费%.1f元\n",money); } else{ printf("下班花费%.1f元\n",money); } } return money; } int main() { printf("小明打的总费用:%.1f\n",fees(4,12)+fees(18,12)); return 0; }
两个白天是指小明上下班都是记白天的价格,如果你把时间改一下就会输出:
夜间/白天:...
夜间/白天:...
#include <stdio.h>//头文件 float fees(int time,int kilometer)/*定义函数,时间time、距离kilometer*/ { float a = 2.3;//每公里单价计费 int b = 13;//3公里起步价 int c = 3;//包含公里数 int d = 1;//燃油费 double money;//花费 int km = kilometer; if(km <= 3) { money = b + d; printf("小明花费%d元\n",money); } else if( time >= 23 || time < 5 ) { money = b + d + a * ( km - c ) * 1.2; printf("夜间花费%.1f元\n",money); } else { money = b + d + a * ( km - c ); printf("白天花费%.1f元\n",money); } return money; } int main() { printf("小明打的总费用:%.1f\n",fees(9,12)+fees(18,12)); return 0; }
夜间花费也改成%.1f
#include <stdio.h>//头文件 float fees(int time,int kilometer)/*定义函数,时间time、距离kilometer*/ { float a = 2.3;//每公里单价计费 int b = 13;//3公里起步价 int c = 3;//包含公里数 int d = 1;//燃油费 double money;//花费 int km = kilometer; if(km <= 3) { money = b + d; printf("小明花费%d元\n",money); } else if( time >= 23 || time < 5 ) { money = b + d + a * ( km - c ) * 1.2; printf("夜间花费%d元\n",money); } else { money = b + d + a * ( km - c ); printf("白天花费%.1f元\n",money); //!!!!你这里注意改一下!!!! } return money; } int main() { printf("小明打的总费用:%.1f\n",fees(9,12)+fees(18,12)); return 0; }
还没有对吗?
我又试了一遍,对了啊,根据你输出的结果,是224行的字符类型没有改过来