例题 :demo练习项目:工资
需求
从终端输入工资数
计算员工的到手工资
<5000不需要交税
每段去掉每段基础后计算
税为每一段的总和
5k 到 8k 10%
8k-10k 15%
>10k 20%
思考思考再看哦~~~
个人的解决方案(分段讨论的思想)
分析:
1·每一段的税收互不影响,只是最后求和
2·由于每一段的税是单独计算的,所以上一段的税收最大值可以确定,计算后可以方便下一段计算总量使用
3·需要定义 税tax、工资pay,方便计算
4·需要输入工资,需要提醒用户输入工资
5·需要在最后输出所得工资并且显示在屏幕上
6·查错时注意句末 ' ; ' 以及{ }部分
#include <stdio.h>
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后第二句开始会当成对全体的指令(易错点记得注意)