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

请大神帮忙看看还有哪里不对的吗?(运行结果已正确)

#include <stdio.h>

 double getTotalCost(float n,float t)

    {

        double cost;

        if(n<=3)

        {

            cost=13+1;

        }

        else

        {

            if(5<=t&&t<23)

            {

                cost=13+1+2.3*(n-3);

            }

            else

            {

                cost=13+1+2.3*(n-3)*1.2;

            }

        }

        return cost;

    }

int main()

{

    printf("小明每天打车总费用为%f:",getTotalCost(12,9)+getTotalCost(12,18));

    return 0;

}


提问者:慕妹1614475 2017-06-24 11:13

个回答

  • 慕先生9485275
    2017-06-25 12:27:20
    已采纳

    我是做安卓的,因为工作需要开始学习C语言

    贴上我自己的代码,相互交流哈。

    #include <stdio.h>

    int getRent(int mile, int time) {

        int startRent = 13; //起步价

        int rentPerMile = 2.3; //每公里单价

        int extraRent = 1; //燃油附加税

        int rent = 0; //打车费用

        

        //打车时间小于0或大于24都是不合法的,输出提示信息并结束方法

        if(time < 0 || time > 24) {

            printf("您输入的打车时间为:%d,这不是一个合法的时间,请重新检查您的输入!!");

            return 0;

        }

        //在23点和5点前打车,每公里单价计费加收20%

        if(time >= 23 || time < 5) {

            rentPerMile *= rentPerMile*1.2;

        }

        

        if(mile <= 3) {

            rent = startRent + extraRent;

        } else {

            rent = startRent + rentPerMile*(mile-3) + extraRent;

        }

        return rent;

    }

    int main()

    {

        int onWorkRent = getRent(12, 9);

        int offWorkRent = getRent(12, 18);

        printf("您的上班打车费用为:%d 元\n", onWorkRent);

        printf("您的下班打车费用为:%d 元\n", offWorkRent);

        printf("您一天的打车费用为:%d 元", onWorkRent+offWorkRent);

        return 0;

    }


  • 慕粉1470501977
    2017-07-03 13:54:24

    是呀,用float或者都变了好一些,int不能输出小数的

  • 慕先生9485275
    2017-06-25 12:35:22

    还是该用float类型,全用int类型,因为自动转型等原因,最后的值就不对了~

  • 慕先生9485275
    2017-06-25 12:31:59

    我觉得把起步价这些值单独定义出来, 这样以后这些值有变化的话, 便于修改。就不用在代码里面到处去找需要修改的地方了

    目前不知道C语言里面是否可以主动抛异常,所以只通过打印的方式提示函数的参数传入有误。这里只考虑了打车时间的参数非法问题,没考虑公里数为负等情况。

    打车公里数和时间都只考虑了int类型的~~

  • qq_莫非
    2017-06-25 12:06:37

    没有问题吧