资深守护
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a;
double t;
scanf("%d",&a);
if(a<=3500)
t=0.00;
else if(a<=5000&&a>3500)
t=(a-3500)*0.03;
else if(a<=8000&&a>5000)
t=(5000-3500)*0.03+(a-5000)*0.1;
else if(a<=12500&&a>8000)
t=(5000-3500)*0.03+(8000-5000)*0.1+(a-8000)*0.2;
else if(a<=38500&&a>12500)
t=(5000-3500)*0.03+(8000-5000)*0.1+(12500-8000)*0.2+(a-12500)*0.25;
else if(a<=58500&&a>38500)
t=(5000-3500)*0.03+(8000-5000)*0.1+(12500-8000)*0.2+(a-12500)*0.25+(a-38500)*0.3;
else if(a<=83500&&a>58500)
t=(5000-3500)*0.03+(8000-5000)*0.1+(12500-8000)*0.2+(38500-12500)*0.25+(58500-38500)*0.3+(a-58500)*0.35;
else if(a>=83500)
t=(5000-3500)*0.03+(8000-5000)*0.1+(12500-8000)*0.2+(38500-12500)*0.25+(58500-38500)*0.3+(83500-58500)*0.35+(a-83500)*0.45;
printf("%.2f\n",(int)(t*100+0.5)/100.0);
return 0;
}
哪里错了?
高级光能
1.直接printf保留小数
2.a也用double
3.最后一个if是a>83500,没有等于
桑烁在2018-10-06 09:24:54追加了内容
else if(a<=58500&&a>38500)
判断条件执行的内容错了
a-12500
!!??
桑烁在2018-10-06 09:25:52追加了内容
其他的你可以不按照我这样改,你写的也是对的
把判断执行的命令改了就行了
桑烁在2018-10-06 09:26:28追加了内容
@童梦圆 @童梦圆 @童梦圆
修练者
if (a<=3500)b=0;
else if (a<=5000)b=(a-3500)*0.03;
else if (a<=8000)b=(5000-3500)*0.03+(a-5000)*0.1;
else if (a<=12500)b=(5000-3500)*0.03+(8000-5000)*0.1+(a-8000)*0.2;
else if (a<=38500)b=(5000-3500)*0.03+(8000-5000)*0.1+(12500-8000)*0.2+(a-12500)*0.25;
else if (a<=58500)b=(5000-3500)*0.03+(8000-5000)*0.1+(12500-8000)*0.2+(38500-12500)*0.25+(a-38500)*0.3;
else if (a<=83500)b=(5000-3500)*0.03+(8000-5000)*0.1+(12500-8000)*0.2+(38500-12500)*0.25+(58500-38500)*0.3+(a-58500)*0.35;
else if (a>83500)b=(5000-3500)*0.03+(8000-5000)*0.1+(12500-8000)*0.2+(38500-12500)*0.25+(58500-38500)*0.3+(83500-58500)*0.35+(a-83500)*0.45;
printf("%.2f",b);