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

求帮忙 指错 谢谢

哪里错了啊


提问者:慕粉3485277 2016-07-31 22:32

个回答

  • Bossen
    2016-08-01 00:05:31
    已采纳

    #include <stdio.h>

    double fee(int mile,int time)
        {
            double fee=0.0;
            if(mile<=3)
            fee=13;
            else if(time>=23&&time<=5)
                fee=13+(mile-3)*2.3*1.2+1;
                else
                    fee=13+(mile-3)*2.3+1;
            return fee;
        }
    int main()
    {
        int d=12;
        int t=6;
        printf("小明每天打车费用为:%lf",fee(d,t));

        return 0;

    }

    你的代码的大框架没有问题,就是小细节没考虑好哦;

    #include <stdio.h>                            

     double fu(double mile, time)  //time是参数,没有定义类型,参数必须每个都要声明类型!
    { double fee;   //可以不赋初值,没有问题                                                   

    if(mile<=3) //for循环的逻辑问题比较大哦
       {
         fee=13;
          }
         if(mile>3) { if (time>=5||time<23) //这里的判断条件是不满足mile<3了,那么就会转向这里,所以不用再嵌套一个if语句
          {
         fee=13+(mile-3)*2.3;
        }
      else
       {
      fee=13+(mile-3)*2.3*1.2;
     }                                                                    }
    return fee;
    }
      int main()//主函数里基本没有问题
       {    double l;
         l=fu(12,9)+fu(12,18);
        printf("小明每天打车的费用:%f\n",l);
      return 0;
    }

    细节+循环的逻辑,是你要加强的哦,建议你重新看一下之前的内容,多练练哦。


  • mooc233
    2016-07-31 23:02:21

    #include <stdio.h>

    double fee(int distance,int in,int out)

        {

            float fee=0.0;

            if(distance<=3)

            fee=13+1;

            else if(in>=23&&out<=5)

            {

                fee=13+(distance-3)*2.3*1.2+1;

            }

                else

                {

                    fee=13+(distance-3)*2.3+1;

                }

            return fee;

        }

    int main()

    {

        int distance=12;

        int in=9,out=6;

        printf("小明每天打车费用为:%lf",fee(12,9,6));

        return 0;

    }