您的位置:首页 > 其它

201612-2工资计算

2020-03-12 18:45 48 查看

#include <iostream>

using namespace std;

int salaryrange[] = {3500, 3500+1500, 3500+4500, 3500+9000, 3500+35000, 3500+55000, 3500+80000 };
int taxrate[] = {3, 10, 20, 25, 30, 35, 45};
const int SIZE = sizeof(salaryrange) / sizeof(int);
//sizeof (salaryrange)就是这个int数组所占的内存总量(字节数),
//sizeof(int)就是单个int所占的内存.
//所以呢sizeof (salaryrange) / sizeof (int)就是array数组的元素的个数
int range[SIZE];

int main()
{
int t, s;

// 计算各种收入范围
//每一种范围的收入都以前一个范围的收入为基础
range[0] = salaryrange[0];
for(int i=1; i<SIZE; i++) {
range[i] = range[i-1] + (salaryrange[i] - salaryrange[i-1])
- (salaryrange[i] - salaryrange[i-1]) * taxrate[i-1] / 100;
}

// 输入数据:
cin >> t;

// 计算收入范围
int i;
for(i=0; i<SIZE; i++)
if(t <= range[i])
break;

// 计算税前工资
if(i == 0)
s = t;
else {
s = salaryrange[i-1] + (t - range[i-1]) * 100 / (100 - taxrate[i-1]);
//这个式子用了两层括号嵌套后出错了
//s=sr[i-1]+(t-r[i-1])/((100-tax[i-1])/100); 错误
//逻辑一定要对,码时可以简化式子
//s=sr[i-1]+(t-r[i-1])/(100-tax[i-1])*100;正确
}

// 输出结果
cout << s << endl;

return 0;
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
DoubleX23 发布了10 篇原创文章 · 获赞 0 · 访问量 162 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: