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

请大神帮我看看对不对


我知道我这样写很啰嗦,但毕竟是我自己的想法,错误多的话还请指出,谢谢

#include <stdio.h>
float fee(int dis,int t)
{   
    float money;
    int flag;
    if(5>t||t>=23)
    {flag=1;}
    else
    {flag=0;}
    if(dis<=3)
    {
        money=14;
        printf("车费为%f元。\n",money);
    }
    else
    {
    if(flag==1)
    {
        money=13+1+(dis-3)*2.3;
    }
    else
    {
        money=13+1+(dis-3)*2.3*1.2;
    }
    return money;
int main()
{
    printf("小明打车费用为%d元",fee(12,9)+fee(12,18));
    return 0;
}


正在回答

3 回答

float fee(int dis,int t)逗号格式换成英文的,  return money;后面加}},你缺了两个大括号的后半部分,条件中的燃油费是不分时段的所以就没必要加flag,条件的需要写出来的只有两个时间和距离,你这个我能改的就这么多,不过金额还不对

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

qq_NirvanaLan_0 提问者

非常感谢!
2016-04-05 回复 有任何疑惑可以回复我~

这个就是根据你的改的,其中的错误,除了楼上那位所说的错误,最重要的是,你把flag的情况搞反了!应该是当flag==1时,*1.2,因为你的条件是t>5||t<=23,这个时间段应该是加钱,结果你给搞反了

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

#include <stdio.h>

float fee(int dis,int t)

{   

    float money;

    if(dis<=3)

        money=14;

    

    else

    {

        if(t<5||t>=23)

            money=13+1+(dis-3)*2.3*1.2;

        else

            money=13+1+(dis-3)*2.3;

    }

    return money;

}

int main()

{

    printf("小明打车费用为%.2f元",fee(12,9)+fee(12,18));

    return 0;

}


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

举报

0/150
提交
取消

请大神帮我看看对不对

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