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

我不知道我的程序错在哪里了,运行错误

#include <stdio.h>

float taxifee(int clock,int miles)
{
    float money;
    if(miles<=3)
    {
        money=14;
        printf("费用为14\n");
    }
    else
    {
        if(clock>=23 || clock<5)
        {
            money=13+1+2.3*(miles-3)*1.2;
            printf("夜间车费为:%f\n",money);
        }
        else
        {
            money=13+1+2.3*(miles-3);
            printf("日间车费为:%f\n",money);
        }
    }
   
    return money;   
}
int main()
{
    printf("打的总费用:%.1f\n",taxifee(9,12)+taxifee(18,12));
    return 0;
}


提问者:小老弟很强 2019-04-05 12:00

个回答

  • qq_慕码人7402875
    2019-04-09 11:22:00

    money=13+1+2.3*(miles-3)*1.2  这一条得到的结果应该是双精度,而定义taxifee为单精度,所以需要强制转换,把float taxifee  换成  double taxifee试一试      //新手的个人理解

  • 长得帅活得久
    2019-04-09 10:51:49

    float taxifee(int clock,int miles)

    {

        float money;

        if((clock<23 || clock>=5)&&miles>3)

        {

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

            printf("日间车费为:%f\n",money);

           

        }

       else if ((clock>=23 || clock<5)&&miles>3)

        {

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

            printf("夜间车费为:%f\n",money);

        }

        else

        {

            money=14;

            printf("费用为14\n"); 

        }

        return money;   

    }

    int main()

    {

        printf("打的总费用:%.1f\n",taxifee(9,12)+taxifee(18,12));

        return 0;

    }

    可以用个if else嵌套,我也刚学,互相指点指点……

  • qq_慕数据7323586
    2019-04-07 15:51:39

    #include <stdio.h>

    float taxifee(int clock,int miles)
    {
        float money;
        if(miles<=3)
        {
            money=14;
            printf("费用为14\n");
        }
        if(clock>=23 || clock<5)
        {
            money=13+1+2.3*(miles-3)*1.2;
            printf("夜间车费为:%f\n",money);
        }
        else
        {
            money=13+1+2.3*(miles-3);
            printf("日间车费为:%f\n",money);
        }
        return money;   
    }
    int main()
    {
        printf("打的总费用:%.1f\n",taxifee(9,12)+taxifee(18,12));
        return 0;
    }



    我觉得时间条件跟路程条件应该是并列关系,但是路程条件应该在前面。