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

运行成功,但计算结果不对

#include <stdio.h>

    int cal(int km, int tm)

    {

    float start = 13;

    float ppk = 2.3;

    float price;

    

    if(km<=3)

    {

        price = (start+1)*2;

    printf("打车总费用为%f元。", price);

    }

    else if(0<=tm<5 || tm>=23)

    {

        price = (start + ppk*(km-3)*1.2+1)*2;

    printf("打车总费用为%f元。", price);

    }

    else 

    {

        price = (start+ ppk*(km-3) + 1)*2;

    printf("打车总费用为%f元。",price);

    }

    return price;

    }

int main()

{

    cal(12,9);

    


return 0;

}


计算结果用了第二种情况,加了20%,但看起来逻辑没错呀?

求大神

正在回答

3 回答

自创函数定义的时候返回值应为float型的而不是int型

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

  0<=tm<5 || tm>=23等价于(0<=tm)<5||tm>=23,你这样子写系统会先判断0<=tm(24进制的时间里必定成立),等于1,再判断1<5,成立,则不判断是否大于23。c语言里连续的判断,要写写成tm>=0&&tm<5||tm>=23,

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

举报

0/150
提交
取消

运行成功,但计算结果不对

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