求大佬解答 我哪里出错了 结果是上班的费用是1703740 下班费用是1703724

#include <stdio.h>
int f(int time,int distance)
{
    double money;
    if(time>=5&&time <=23)
      if(distance<=3)
      money=13;
      else
      money=13+2.3*(distance-3);
    else
      if(distance<=3)
      money=14;
      else
      money=14+2.3*1.2*(distance-3);
   return money;
}

int main()
{
    int a,distances=12, time1=9,time2=18,b;
    a=f(time1,distances);
    printf("上班的车费是:%d\n",&a);
 b=f(time2,distances);
    printf("下班的车费是:%d\n",&b);
    return 0;
}


安之4183388
浏览 1667回答 2
2回答

望远

#include <stdio.h> double f(int time,int distance)//注意返回值类型,money是double类型,否则会损失精度 {     double money=0;     if(time>=5&&time <=23)       if(distance<=3)         money=13;       else         money=13+2.3*(distance-3);     else       if(distance<=3)         money=14;       else         money=14+2.3*1.2*(distance-3);    return money; } int main() {     int distances=12, time1=9,time2=18;     double a,b;//a,b应该定义为double类型     a=f(time1,distances);     printf("上班的车费是:%.3lf\n",a);//输出数据,你原来输出的是地址     b=f(time2,distances);     printf("下班的车费是:%.3lf\n",b);     return 0; }

qq_梦里_0

没看出来 我运行了好几次结果都不一样。建议你写代码的时候规范点,if else后面的语句用{}括起来
打开App,查看更多内容
随时随地看视频慕课网APP