70,020
社区成员




tax = 0;
if (income > 10000)
{
tax += (income - 10000)*0.01; //大于10000部分收1%的税。
income = 10000;
}
if (income > 8000)
{
tax += (income - 8000)*0.007; //大于8000小于10000部分收0.7%的税。
income = 8000;
}
if (income > 5000)
{
tax += (income - 5000)*0.005; //大于5000小于8000部分收0.5%的税。
income = 5000;
}
if (income > 3500)
{
tax += (income - 3500)*0.003; //小于3500部分不收税。
//income = 3500;
}
return tax;
#include <iostream>
#include <cstdlib>
using namespace std;
//1.小于3500部分不收税。
//2.大于3500小于5000部分收0.3%的税。
//3.大于5000小于8000部分收0.5%的税。
//4.大于8000小于10000部分收0.7%的税。
//5.大于10000部分收1%的税。
//利用递归
double jisuanSui(double ShouRu)
{
if (ShouRu > 10000)
{
return jisuanSui(10000) + (ShouRu - 10000)*0.01; //大于10000部分收1%的税。
}
else if (ShouRu > 8000)
{
return jisuanSui(8000) + (ShouRu - 8000)*0.007; //大于8000小于10000部分收0.7%的税。
}
else if (ShouRu > 5000)
{
return jisuanSui(5000) + (ShouRu - 5000)*0.005; //大于5000小于8000部分收0.5%的税。
}
else if (ShouRu > 3500)
{
return jisuanSui(3500) + (ShouRu - 3500)*0.003; //小于3500部分不收税。
}
else
return 0;
}
int main()
{
double ShouRu;
cout << "请输入你的收入:";
cin >> ShouRu;
cout << "你所要缴纳的税收为:" << jisuanSui(ShouRu) << endl;
system("pause");
return 0;
}
#include<stdio.h>
int main()
{
double a[4] = {12500,8000,5000,3500};
double b[4] = {0.25,0.2,0.1,0.03};
/*数组a作为每次判断的标准(点),数组b作为每次判断之后的税收*/
double earn,temp,shui,rest;
int i;
/*earn是用户输入赚了多少钱,temp是earn赋值过来用来计算的,shui是税收总额,rest是每次减去税收点的税收计算额*/
printf("请输入你这个月赚了多少钱:");
scanf("%lf",&earn);
/*计算主体*/
for(temp=earn,i=0,shui=0;i<4;i++)
{
if(temp - a[i] <= 0)
{
continue;
}
/*这里主要判断目前的钱是否大于a[i]的这个税收点,如果结果小于0,则表明不在该点,程序i++跳到下一个判断点*/
else
{
rest = temp - a[i];
shui += rest * b[i];
temp -= rest;
}
/*税收计算主体,如果不是上面的条件了,就是表明符合了这个条件*/
/*首先将目前的钱减去这个点,剩下的就是这个点需要计算这个点的税收的钱*/
/*下一个需要判断的点其实是从这个点开始的,不过目前可以用temp -= rest来计算*/
}
printf("收入为:%.2lf\t所需交税:%.2lf\t税后收入为:%.2lf\n\n",earn,shui,earn-shui);
main();
}