计算收入并排序输出
已知某单位职工的收入由基本工资、计件工资和扣税构成,其中基本工资为 1000元,计件工资标准为 30元/工件,扣税比例为前两项和的 20% ,请编写程序输入 5 名职工的姓名、工件数,计算其最终收入(收入按 int 计算,去掉小数部分),并按照收入大小进行排序输出,要求每人一行,姓名和收入之间以 TAB 分隔
要求使用结构体实现
例如: 输入:
zhangsan 100
lisi 90
wangwu 88
zhaoliu 95
chenqi 60
输出:
zhangsan 3200
zhaoliu 3080
lisi 2960
wangwu 2912
chenqi 2240
代码如下,如有帮助,请采纳一下,谢谢。
#include <iostream>
using namespace std;
struct Employee
{
char name[20];
int nmb;
int solary()
{
return (1000 + 30 * nmb) * 0.8;
}
};
int main()
{
int i =0,j =0;
Employee tmp;
Employee arr[5];
cout << "请输入5名职工的姓名、工件数:" << endl;
for (i = 0; i < 5;i++)
{
cin >> arr[i].name >> arr[i].nmb;
}
//排序
for(i = 0; i< 4;i++)
{
for (j = 0; j < 4-i; j++)
{
if (arr[j].solary() < arr[j+1].solary())
{
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
//输出
for (i = 0; i < 5;i++)
cout << arr[i].name << "\t" << arr[i].solary() << endl;
return 0;
}
主要用到一些函数和变量的使用,可以先写些界面,再根据问题逻辑调整
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632