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

还是不能得到正确结果。代码中有哪些问题呢?请指正。

#include <stdio.h>

float cost(int x,int y)

{

    float money;

    float price=2.3;

    if(x>=23||x>=0&&x<5)

    {

        price*=1.2;

    }

    else

{

        goto LOOP;

}

    LOOP:if(y<=3)

    {

        money=13+1;

    }

    else

    {

        money=13+(y-3)*price+1;

    }

    return money;

}

int main()

{

   int x=9;

   int y=12;

 float money;

    cost(x,y);

   float cost1=money;

    x=18;

    y=12;

    cost(x,y);

    float cost2=money;

    float totalcost=cost1+cost2;

    printf("小明每天打车的总费用是%.2f\n",totalcost);

    return 0;

}


正在回答

1 回答

原因:计算单程打车费用的函数的返回值,没有赋值给money变量,所以变量cost1、cost2得到的值是内存任意提供给变量money的值,是一个没有意义的随机值。

解决:把main()函数中的两句「cost(x,y);」都改为「money = cost(x,y);」即可。

另,其它情况是否还有问题,不得而知。

建议你可以自己试试改变默认的上下班时间,看代码运行后能不能得到正确的结果。

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926217    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

还是不能得到正确结果。代码中有哪些问题呢?请指正。

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