有大佬知道,代碼里為什么 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;//為什么這里的結(jié)果等與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("小明每天的打車費(fèi)用%0.2f元",sum);
}
2022-12-02
int是定義整形字符的當(dāng)然會(huì)幫你把小數(shù)點(diǎn)抹了啊,要用double或者float
2022-10-09
你太蠢了
2022-09-03
用了int,所以結(jié)果是小數(shù)時(shí)只去整數(shù)部分
如int x;
x=1.7;
printf("%d",x);
輸出的x為1