多个if判定语句嵌套的练习

例题 :demo练习项目:工资

需求

从终端输入工资数
计算员工的到手工资
<5000不需要交税
每段去掉每段基础后计算
税为每一段的总和
5k 到 8k 10%
8k-10k 15%
>10k 20%

思考思考再看哦~~~

个人的解决方案(分段讨论的思想)

分析:
1·每一段的税收互不影响,只是最后求和
2·由于每一段的税是单独计算的,所以上一段的税收最大值可以确定,计算后可以方便下一段计算总量使用
3·需要定义 税tax、工资pay,方便计算
4·需要输入工资,需要提醒用户输入工资
5·需要在最后输出所得工资并且显示在屏幕上
6·查错时注意句末 ' ; ' 以及{ }部分

#include 

int main()
{   printf("请输入工资:");
    int pay=0;                                           //定义工资 
    int tax=0;                                           //定义税收 
    scanf("%d",&pay);                            //输入工资 
    
    if(pay<=5000 ){                                //5000段的判定 
    pay=pay;                                        //不处理
    }                                                        
        else if(pay<=8000){         //5000到8000段 
        tax=(pay-5000)*0.1;                //计算各段交税合计为  
        pay=pay-tax;                           //最开始的工资减去交税后赋值给所得工资
        
    }
            else if(pay<=10000){    //8000到10000段  
            tax=200+(pay-8000)*0.15; //计算各段交税合计为
            pay=pay-tax;                      //最开始的工资减去交税后赋值给所得工资
}
    else                                //10000以上 
    {                                                       //8000到10000段  
    tax=200+300+(pay-10000)*0.2;      //计算各段交税合计为
    pay=pay-tax;                                  //最开始的工资减去交税后赋值给所得工资
    }
    printf("%d",pay);                        //输出所得工资
return 0;       
    }
***

总结:

a·注意if括号的配对,且if、else后不可以加分号(;)
b·注意最后else符号有没有括号,if和else只默认其后第一句,不然else后第二句开始会当成对全体的指令(易错点记得注意)

你可能感兴趣的:(多个if判定语句嵌套的练习)