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

答案都是69.400002吗?

https://img1.sycdn.imooc.com//5d398f150001e49c06750344.jpg

#include <stdio.h>

float price;

float Price(int time, int distance)

{

if (distance <= 3){

price = 13;

}

else{

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

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

}

else{

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

}

}

return price;

}


int main()

{

printf("小明每天打车的总费用为:%f\n", Price(9, 12) + Price(18, 12));

return 0;

}


正在回答

4 回答

我是69.400000emmmmm

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

函数和变量定义为double就好了

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

废寝忘食陈同学

为什么会出现这样的不同呢
2019-08-07 回复 有任何疑惑可以回复我~
#2

小小疾飞 回复 废寝忘食陈同学

这和内存有关,一下子也讲不清楚。或者你可以这样,不改变量类型,把%f改成%0.1f即可。
2019-08-07 回复 有任何疑惑可以回复我~

#include <stdio.h>

double fee(int n,int time)//n为公里数

{   

   double sum;

    if(n<=3)

        return 13;

    else

    {

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

        sum=13+2.3*(n-3)+1;

       else

       {

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

       }

        return sum;

    }

}

int main()

{

    printf("小明每天打车的总费用:%0.2lf",fee(12,9)+fee(12,18));

    return 0;

}


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

满慕星辰 提问者

if (time >= 23 || time<5) sum = 13 + 2.3*(n - 3) + 1; else { sum = 13 + 2.3*1.2*(n - 3) + 1; } return sum; 你这个地方写反了,应该换一下,写成这样: if (time >= 23 || time<5) sum = 13 + 2.3*1.2*(n - 3) + 1; else { sum = 13 + 2.3*(n - 3) + 1; } return sum;
2019-07-25 回复 有任何疑惑可以回复我~

为什么我是77.68

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

举报

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

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

进入课程

答案都是69.400002吗?

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