#include <stdio.h> float sun(int time, int dis){ float sp = 13, p = 2.3, sum = 0; if(dis<=3){ sum = 13+1; }else{ if(time>=23 || time<5){ sum = 13+(dis-3)*2.3*1.2+1; }else{ sum = 13+(dis-3)*2.3+1; } } return sum; } int main() { float sum = sun(9,12)+sun(18,12); printf("总费用:%f",sum); return 0; }
float类型的精度不够,在多次运算后结果就会有误差。你的这个程序要求的精度应该也不会太高,换成double应该就好了。
另外,sun函数中的sp和p变量都没有使用。