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

为什么算出来0

#include <stdio.h>
int money(int a,int s)
{
  int sum;
  if(s<=3) sum==14;
  else if((a>=23&&a<24)||(a<5&&a>0)) sum==1+2.3*1.2*(s-3);
  else sum==1+2.3*(s-3);
}
int main()
{
   int all;
   all==money(9,12)+money(18,12);
   printf("小明每天打车%d元",all);
    return 0;
}

提问者:C_S_C 2018-09-04 17:53

个回答

  • 灵魂躯壳
    2018-09-06 14:17:41

    #include <stdio.h>

    float price(int time,int distance)

    {

        float percost=2.3,pay;

        if(time>=23&&time<5)

            percost+=percost*0.2;

        if(distance<=3)

            return 14;

        else

        {

            pay=13+(distance-3)*percost+1;

            return pay;

        }

    }

    int main()

    {

        int time1=9,time2=18,distance=12;

        float pay1=price(time1,distance);

        float pay2=price(time2,distance);

        printf("%.2f\n",pay1+pay2);

        return 0;

    }


  • ZR南山
    2018-09-06 03:13:23

    同上而且。。。题意你也还没看明白。 少了一个13.。

  • 慕丝214842
    2018-09-04 20:45:02

    刚开始,我跑不了你的代码。改了一丢丢。

    #include <stdio.h>

    int money(int a,int s)

    {

      int sum;

      if(s<=3)

      {

      sum=14; // == 是关系运算符,我们需要赋值运算符,你几乎每一处都写了关系运算符

      }

      else if((a>=23&&a<24)||(a<5&&a>0))

      {

      sum=1+2.3*1.2*(s-3);

      }

      else 

      {

      sum=1+2.3*(s-3);

      }

      return sum; //你原本的函数没有返回的值,相当于这个函数只有输入没有输出

    }

    int main()

    {

       int all;

       all=money(9,12)+money(18,12); //因为没返回值,这里自然会有错误

       printf("小明每天打车%d元",all);

       return 0;

    }

    这样跑出来的结果是:小明每天打车42元

    同小白勉强解释,你自己再改一改吧。加油。