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

有大佬知道,代码里为什么 13+9*2.3+1=34?不是34.7

#include <stdio.h>

int times(int s)

{

    if(s>5&&s<=23)

        {

            return 1;

        }else

        {

           return 2;

        }

}

int width(int l)

{

    if(l<=3)

    {

        return 1;

    }

    else

    {

        return 2;

    }

}

int price(int jl,int sj)

{

    char fees;

    int t=times(sj);

    int w=width(jl);

    if(t==1 && w==1)

    {

        fees=13+1;

    }

    if(t==1 && w==2);

    {

        fees=13+(jl-3)*2.3+1;//为什么这里的结果等与34而不是34.7

    }

    if(t==2 && w==1)

    {

        fees=13+1;

    }

    if(t==2 && w==2)

    {

        fees=13+(jl-3)*2.3*1.2+1;

    }

}


int main()

{

   float a=price(6,12);

   float b=price(18,12);

   float sum=a+b;

   printf("小明每天的打车费用%0.2f元",sum);


}


正在回答

3 回答

int是定义整形字符的当然会帮你把小数点抹了啊,要用double或者float

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

你太蠢了

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

weixin_慕码人3530614

笑死我了哈哈哈哈哈
2022-10-20 回复 有任何疑惑可以回复我~

用了int,所以结果是小数时只去整数部分

如int x;

x=1.7;

printf("%d",x);

输出的x为1

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

weixin_慕侠2325489

去改取
2022-09-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

有大佬知道,代码里为什么 13+9*2.3+1=34?不是34.7

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