每天总费用69.400002,不知道后面2怎么来的

来源:5-14 综合练习

阿伟_M囧君

2015-02-28 14:26

#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;
}


写回答 关注

1回答

  • onemoo
    2015-02-28 22:51:29

    float类型的精度不够,在多次运算后结果就会有误差。你的这个程序要求的精度应该也不会太高,换成double应该就好了。


    另外,sun函数中的sp和p变量都没有使用。

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926207 学习 · 20797 问题

查看课程

相似问题