现在要将某公司多部门员工工资信息存放入计算机内存中,员工信息包含:员工号、姓名、部门、工资;使用结构体数组处理员工数据,只统计“信息管理部”这个部门的人员平均工资是多少。使用C语言开发上面描述的统计程序。
时间: 2024-10-09 10:12:28 浏览: 31
为了实现这个需求,我们可以创建一个结构体表示员工信息,然后定义一个结构体数组来存储所有员工的数据。接下来,我们将遍历数组并计算"信息管理部"员工的总工资,最后除以该部门的员工数量得到平均工资。
首先,我们定义一个名为`Employee`的结构体:
```c++
#include <stdio.h>
// 定义员工信息结构体
struct Employee {
int employeeNo;
char name[50];
char department[50]; // 假设部门名长度不超过50个字符
double salary;
};
int main() {
// 结构体数组,假设我们有至少一名员工
const size_t MAX_EMPLOYEES = 100;
struct Employee employees[MAX_EMPLOYEE];
// 假设已填充员工信息,这里只提供部分示例
employees[0].employeeNo = 1001;
strcpy(employees[0].name, "张三");
strcpy(employees[0].department, "信息管理部");
employees[0].salary = 8000.00;
// ... 其他员工信息类似 ...
// 初始化部门工资计数器和总工资
int imdCount = 0;
double totalSalaryImd = 0.0;
// 遍历数组,统计"信息管理部"的员工及工资
for (size_t i = 0; i < MAX_EMPLOYEE; ++i) {
if (strcmp(employees[i].department, "信息管理部") == 0) {
imdCount++;
totalSalaryImd += employees[i].salary;
}
}
// 计算平均工资(如果imdCount为0,则没有信息管理部的员工)
double averageSalaryImd = imdCount > 0 ? totalSalaryImd / imdCount : 0.0;
printf("信息管理部员工的平均工资是: %.2f\n", averageSalaryImd);
return 0;
}
```
在这个程序中,我们首先定义了员工结构体`Employee`,然后在`main()`函数中创建了一个结构体数组来存储员工数据。接着,我们遍历数组,如果找到"信息管理部"的员工就累加他们的工资,并增加计数器。最后,我们根据计数器和总工资计算平均工资并输出结果。
如果你的实际情况中部门信息不是字符串而是整数或枚举类型,请相应地调整`department`字段的类型和比较逻辑。
阅读全文