为了账号安全,请及时绑定邮箱和手机立即绑定

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

截图代码输出结果为:

白天花费12元

白天花费18元

小明打的总费用:83.2


正在回答

9 回答

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

1 回复 有任何疑惑可以回复我~
#1

勿忘SnowRain 提问者

没错,我不会写,有的一些是仿照别人写的。
2016-08-05 回复 有任何疑惑可以回复我~

if(km <= 3)

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

0 回复 有任何疑惑可以回复我~

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


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


0 回复 有任何疑惑可以回复我~

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

夜间/白天:...

夜间/白天:...

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


0 回复 有任何疑惑可以回复我~

夜间花费也改成%.1f

0 回复 有任何疑惑可以回复我~
#1

勿忘SnowRain 提问者

两个白天怎么改?
2016-08-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("夜间花费%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;
}


0 回复 有任何疑惑可以回复我~

还没有对吗?

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信