大神求解!
编译的了,但是输入值确不行#include <stdio.h>
int main(int agrc,const char*agrv[])
{
doublep=0,b=0;
scanf("%lf%lf",&p,&b);
//profit,bouns;
if(p<100000||p==100000){
b=p*0.1;}
else if(p>100000&&p<200000){
b=100000*0.1+(p-100000)*0.075;}
else if(200000<=p&&p<400000){
b=(p-20000)*0.05+100000*0.075+100000*0.1; }
else if(400000<=p&&p<600000){
b=100000*0.1+20000*0.05+100000*0.1+100000*0.075+(p-400000)*0.03; }
else if(600000<=p&&p<1000000){
b=100000*0.1+20000*0.05+100000*0.075+400000*0.03+(p-600000)*0.015;}
else if(p>=1000000){
b=100000*0.1+20000*0.05+100000*0.075+400000*0.03+600000*0.015+(p-1000000)*0.01;}
printf("%f",b);
return 0;
}
可不可以不要else 本帖最后由 jackz007 于 2022-11-21 21:18 编辑
if ... else if ... else if ... else
这种结构代表同一个 if 多个条件分段判断,只要一个分支条件符合的话,就不会再判断其它分支,当然,在所有条件分支的条件整体闭合的情况下,你完全可以考虑去掉 else,把 else if 直接改成 if 也应该没有任何问题,只不过是把一个判断体系改成了多个独立判断而已。
你这个代码运行结果有问题吗?我试了一下,似乎没毛病啊。
此外,变量 b 是计算结果用的,似乎并不需要从键盘输入吧? jackz007 发表于 2022-11-21 21:06
这种结构代表同一个 if 多个条件分段判断,只要一个分支条件符合的话,就不会再判断其它分支,当 ...
懂了,感谢!
页:
[1]