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

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

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

C C++
安之4183388 2017-06-08 16:02:44
#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;}
查看完整描述

2 回答

已采纳
?
望远

TA贡献1017条经验 获得超1032个赞

#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;
}


查看完整回答
3 反对 回复 2017-06-08
?
qq_梦里_0

TA贡献16条经验 获得超13个赞

没看出来 我运行了好几次结果都不一样。建议你写代码的时候规范点,if else后面的语句用{}括起来

查看完整回答
1 反对 回复 2017-06-08
  • 2 回答
  • 0 关注
  • 1666 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信