```c
include
int main() {
float before_tax, after_tax, tax;
const float TAX_FREE_THRESHOLD = 5000.0;
const float TAX_RATE_1 = 0.03;
const float TAX_RATE_2 = 0.10;
const float TAX_RATE_3 = 0.20;
const float TAX_RATE_4 = 0.25;
const float TAX_RATE_5 = 0.30;
const float TAX_RATE_6 = 0.35;
const float TAX_RATE_7 = 0.40;
const float TAX_RATE_8 = 0.45;
const float SPEEDY_DEDUCTION = 2500.0;
printf("请输入您的工资总额: ");
scanf("%f", &before_tax);
if (before_tax <= TAX_FREE_THRESHOLD) {
after_tax = before_tax;
tax = 0;
} else {
tax = (before_tax - TAX_FREE_THRESHOLD) * TAX_RATE_1;
if (before_tax > 35000) {
tax += (before_tax - 35000) * TAX_RATE_2;
if (before_tax > 55000) {
tax += (before_tax - 55000) * TAX_RATE_3;
if (before_tax > 80000) {
tax += (before_tax - 80000) * TAX_RATE_4;
if (before_tax > 100000) {
tax += (before_tax - 100000) * TAX_RATE_5;
if (before_tax > 125000) {
tax += (before_tax - 125000) * TAX_RATE_6;
if (before_tax > 150000) {
tax += (before_tax - 150000) * TAX_RATE_7;
if (before_tax > 180000) {
tax += (before_tax - 180000) * TAX_RATE_8;
}
}
}
}
}
}
}
}
after_tax = before_tax - tax;
printf("您的工资总额是: %.2f\n", before_tax);
printf("您需要缴纳的税额是: %.2f\n", tax);
printf("您的税后工资是: %.2f\n", after_tax);
return 0;
}
```
代码说明:
常量定义 :定义了免税额度、各税率和速算扣除数。用户输入:
提示用户输入工资总额。
税额计算
如果工资总额不超过免税额度,税额为0,税后工资等于工资总额。
否则,根据工资总额超过免税额度的部分,逐级计算税额。
输出结果:
输出工资总额、税额和税后工资。
建议:
该程序适用于个人所得税的计算,但实际应用中可能需要考虑更多的扣除项,如专项附加扣除、依法确定的其他扣除等。
可以根据最新的个人所得税法调整税率和速算扣除数。
程序中使用了多个`if`语句来处理不同的工资范围,可以根据需要优化为更简洁的结构,例如使用查找表或函数来提高代码的可读性和可维护性。