看不出来哪里错了
#include <stdio.h> int fare(int s,int time) { //定义单价 float kmPrice=2.3; //每公里单价 float firstPrice=13; //起步价 float fuel=1; //燃油附加费 //判断是否为夜间乘车 int plus=0; if(time<5||time>=23) { plus=0.2; } //小于三公里 if(s<3&&s>0) { return kmPrice*(1+plus)+fuel; } else if(s>=3)//大于等于三公里 { return (firstPrice+kmPrice*(s-3))*(1+plus)+fuel; } } int main() { int S=2; printf("%d公里的价格为%f\n",S,fare(S,9)); return 0; }
呃,后来自己发现了,fare()函数定义的返回值是int,最后printf0格式输出是%f,把int fare()改成float fare()就可以了