编写程序,从键盘输入职工人数及每位职工的的信息,包括;职工号、姓名和工资,输出所有职工的平均工资低于20000的职工信息
typedef struct _person
{
int nid;
char name[20];
float sal;
}person;
void main()
{
person p[100];
int i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d %s %f",&p[i].nid,p[i].name,&p[i].sal);
}
for(i=0;i<n;i++)
{
if(p[i].sal < 20000)
printf("%d %s %f\n",p[i].nid,p[i].name,p[i].sal);
}
}
定义一个职工数据结构,遍历输入,遍历计算工资
C语言的有了,给你写一个C++的吧!
思路:
定义结构体用于存储员工信息
然后死循环输入员工信息
最后输出工资小于20000的员工信息
注意:代码中使用到了vector容器,也就是动态数组。
代码中也有计算平均工资的代码,放开注释,根据自己的需求改一下就好!
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
using namespace std;
// 定义员工信息结构体
typedef struct Message {
int id; // 工号
string name; // 姓名
int salary; // 工资
};
int main(void) {
vector<struct Message> message; // 定义员工信息动态数组
int index = 0;
int flag = 0;
double average = 0;
while (true) {
struct Message mes;
cout << "请输入员工的工号:";
cin >> mes.id;
if (cin.fail()) {
cout << "输入数据有误!程序结束!" << endl;
return -1;
}
cout << "请输入员工的姓名:";
cin >> mes.name;
if (cin.fail()) {
cout << "输入数据有误!程序结束!" << endl;
return -1;
}
cout << "请输入员工的工资:";
cin >> mes.salary;
if (cin.fail()) {
cout << "输入数据有误!程序结束!" << endl;
return -1;
}
// 将输入的数据存储到动态数组中
message.push_back(mes);
cout << "是否还要继续输入?(0 | 1)";
cin >> flag;
if (flag == 0) {
break;
}
cout << endl; // 换行
}
//for (int i = 0; i < message.size(); i++) {
// average += message.at(i).salary; // 统计全部薪水
//}
//// 计算平均值
//average = average / message.size();
// 输出所有职工的平均工资低于20000的职工信息
cout << endl << endl << "职工的平均工资低于20000的职工信息有:" << endl;
for (int i = 0; i < message.size(); i++) {
if (message.at(i).salary < 20000) {
cout << "工号:" << message.at(i).id << " 姓名:" << message.at(i).name << " 工资:" << message.at(i).salary << endl;
}
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632