if
else if
发现,以下的写法不行,如果大于20万就一定会执行第二个判断;
因为:
if语句满足条件就执行;
但else if 语句一旦满足条件就不会往下判断了
----------------------------
应该是由于,100000<a<200000写法不对
这样:((100000<a)&&(200000<a))
-----------------------------------------------------------------------
正确答案:
#include<iostream>
using namespace std;
double a;
double b;
int main()
{
scanf_s("%lf", &a);
if (a <= 100000)
{
b = a * 0.1;
}
else if ( a <=200000)
{
b = 10000 + (a - 100000) * 0.075;
}
else if (a <= 400000)
{
b = 10000 + 7500 + (a - 200000) * 0.05;
}
else if ( a <= 600000)
{
b = 10000 + 7500 + 10000 + (a - 400000) * 0.03;
}
else if (a <= 1000000)
{
b = 10000 + 7500 + 10000 + 6000+(a - 600000) * 0.015;
}
else if(1000000 < a )
{
b = 10000 + 7500 + 10000 + 6000+6000+(a - 1000000) * 0.01;
}
printf("%.2lf", b);
return 0;
}