求大神们看一下我的代码哪里错了?

来源:5-14 综合练习

勿忘SnowRain

2016-08-04 22:55

截图代码输出结果为:

白天花费12元

白天花费18元

小明打的总费用:83.2


写回答 关注

9回答

  • 瑞_琉璃
    2016-08-05 09:57:53
    已采纳

    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*/你写个距离+时间,写反了

    勿忘Snow...

    没错,我不会写,有的一些是仿照别人写的。

    2016-08-05 11:25:45

    共 2 条回复 >

  • 瑞_琉璃
    2016-08-08 09:50:30

    if(km <= 3)

    这里也可以加上if判断语句判断时间,

  • 瑞_琉璃
    2016-08-08 09:48:35

    加个判断时间为上班还是下班,上班输出上班,下班输出下班


  • 瑞_琉璃
    2016-08-08 09:47:00
    #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;
    }


  • 瑞_琉璃
    2016-08-08 09:36:05

    两个白天是指小明上下班都是记白天的价格,如果你把时间改一下就会输出:

    夜间/白天:...

    夜间/白天:...

  • 勿忘SnowRain
    2016-08-06 16:52:06
    #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;
    }


  • 瑞_琉璃
    2016-08-06 10:27:16

    夜间花费也改成%.1f

    勿忘Snow...

    两个白天怎么改?

    2016-08-06 16:54:47

    共 2 条回复 >

  • 瑞_琉璃
    2016-08-06 10:24:53
    #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;
    }


  • 瑞_琉璃
    2016-08-06 10:23:26

    还没有对吗?

    我又试了一遍,对了啊,根据你输出的结果,是224行的字符类型没有改过来

C语言入门

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

926210 学习 · 20797 问题

查看课程

相似问题