为什么我的sample1 是错的
#include <stdio.h>
int main()
{
int water;
double money;
scanf("%d",&water);
if(water<=15){
money = (4*water)/3;
}else if(water>15){
money = (2.5*water)-17.5;
}
printf("%.2lf",money);
return 0;
}
本帖最后由 jackz007 于 2021-10-28 22:05 编辑
这一句,这么写是整数除法,会降低计算精度
money = (4*water)/3;
应该强调是浮点数除法:
money = (4.0*water)/3;
下面是我的代码,谨供楼主参考
#include <stdio.h>
int main(void)
{
double x , y ;
scanf("%lf" , & x) ;
if(x > 0.0) {
if(x <= 15) y = 4.0 * x / 3.0 ;
else y = x * 2.5 - 17.5 ;
printf("%.2lf\n" , y) ;
}
}
编译、运行实况:
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
12
16.00
D:\00.Excise\C>x
16
22.50
D:\00.Excise\C>
页:
[1]