结构推理
编程计算个人所得税。个人所得税率表如下:月收入1200元起征,超过起征点500元以内部分税率5/%,超过500元到2,000元部分税率10/%,超过2,000元到5,000元部分税率15/%,超过5,000元到20,000元部分税率20/%,超过20,000元到40,000元部分税率25/%,超过40,000元到60,000元部分税率30/%,超过60,000元到80,000元部分税率35/%,超过80,000元到100,000元部分税率40/%,超过100,000元部分税率45/%。
【正确答案】解:应该从最高税率段开始计算,分段叠加。先算两万元以上各段,每两万为一档,采用switch语句,注意没有使用break语句。后面各低收入段,用if语句,也没有使用else,这两种方法是对应的。第二要注意计算的入口处,收入减去该段的下限,进行计算,以后各段都是完整的段,计算十分简单。
#include
using namespace std;
int main(){
double income,tax=0;
int k;
cout<<"请输入个人月收入:"<>income;
if(income<=1200){
cout<<"免征个人所得税"<20000){
k=income/20000;
switch(k){
default: tax+=(income-100000)*0.45;income=100000;
case 4: tax+=(income-80000)*0.40;income=80000;
case 3: tax+=(income-60000)*0.35;income=60000;
case 2: tax+=(income-40000)*0.30;income=40000;
case 1: tax+=(income-20000)*0.25;income=20000;
}
}
if(income>5000){
tax+=(income-5000)*0.20;
income=5000;
}
if(income>2000){
tax+=(income-2000)*0.15;
income=2000;
}
if(income>500){
tax+=(income-500)*0.10;
income=500;
}
tax+=income*0.05;
cout<<"应征所得税:"<
【答案解析】