问答详情
源自:5-14 综合练习

哈哈,越加越懵了

#include <stdio.h>
double youfei(int n)
{
    if(n<=3)
    {
        return 13;
    }
    else
    {
        return 13+(n-3)*2.3;//起价13元加上超出每公里加2.3元
    }
}
int main()
{
    double sum=youfei(12);
    double time1 = 4;
    double am;
    if(time1 < 5 || time1 >= 23)
    {
        am=sum+sum*0.2;
        printf("加收时段,上班时收费为%f元\n",am);
    }
    else
    {
    }
    double time2 = 24;
    double pm;
    if(time2 <5 || time2 >= 23)
    {
        pm=sum+sum*0.2;
        printf("加收时段,下班时收费为%f元\n",pm);
    }
    else
    {
    }
    double jiashou;
    double i=sum+1;//每次加收1元
    double i2=am+1;
    double i3=pm+1;
    double x=i*2;//上下班要叫车2次
    double x2=
    printf("邮费要%f元",x);
    return 0;
}

弄好发现加收条件没写,越补越懵了...

#include <stdio.h>
double youfei(int n)
{
    if(n<=3)
    {
        return 13;
    }
    else
    {
        return 13+(n-3)*2.3;//起价13元加上超出每公里加2.3元
    }
}
int main()
{
    double sum=youfei(12);
    double i=sum+1;//每次加收1元
    double x=i*2;//上下班要叫车2次
    printf("邮费要%f元",x);
    return 0;
}

这是原来的,要怎么添加那个加收条件?

提问者:qq_犎_0 2016-03-02 22:30

个回答

  • weibo_带我去蒲公英飞来的方_0
    2016-03-03 00:21:30
    已采纳

    1.第一种. 因为这个题目简单,不需要那么复杂可以直接这样写

    #include <stdio.h>
    int money(int d)  //d是distance 距离
    {
        int m; 
        if(d<=3)
        {
            return 13;
        }
        else
        {
            int d=d-3;

     /*我理解你用【13+(n-3)*2.3】的想法,但是你直接return了是什么鬼?然后这想法是错的,因为把【】带入公式的话就变成递归了*/
            m=money(d)*2.3+1;  //题目里还有个每次乘车收一元钱
        }
        return m;
    }
    int main()
    {
        int n;
        n=money(12)*2;
        printf("总费用为:%d",n);
        return 0;
    }

    2.第二种,把所有情况考虑进去。就是按照你的想法来写的话。。。(我心累)

    题目告诉你小明一天两次打车,可是如果考虑特殊时段,还是一天乘车两次吗?因为题目限制,所以不用考虑那个了。

    反正我是不知道该怎么写啦。。。。。。