c++定义一个4行5列的二维数组,用于保存4个员工5个月的薪资收入情况;(1)请输入每个员工的薪资收入; (2)请找出收入最高(单月)的员工,是哪个员工;
时间: 2024-11-22 08:39:46 浏览: 18
在C++中,我们可以使用`std::vector`容器来动态创建一个二维数组表示薪资收入,因为它的大小可以在运行时调整。首先,我们需要定义一个结构体(如`EmployeeSalary`)来存储每个月的薪资,然后定义一个二维`vector`来存放所有员工的薪资数据。以下是代码示例:
```cpp
#include <iostream>
#include <vector>
// 定义员工薪资结构体
struct EmployeeSalary {
int employeeId;
double salaryPerMonth[5]; // 5个月的薪资
};
int main() {
const int rows = 4; // 4个员工
const int cols = 5; // 5个月
// 创建并初始化二维vector
std::vector<EmployeeSalary> employeeSalaries(rows);
for (int i = 0; i < rows; ++i) { // 输入每个员工的薪资信息
EmployeeSalary &currEmployee = employeeSalaries[i];
currEmployee.employeeId = i + 1; // 假设员工ID从1开始计数
std::cout << "请输入员工" << currEmployee.employeeId << "每月的薪资(输入5个月):" << std::endl;
for (int j = 0; j < cols; ++j)
std::cin >> currEmployee.salaryPerMonth[j];
}
// 找出收入最高的员工及其最高月收入
double maxIncome = 0.0;
int highestEmployeeId = -1;
for (const auto &employee : employeeSalaries) {
if (std::max_element(employee.salaryPerMonth, employee.salaryPerMonth + cols)[0] > maxIncome) {
maxIncome = *std::max_element(employee.salaryPerMonth, employee.salaryPerMonth + cols);
highestEmployeeId = employee.employeeId;
}
}
std::cout << "收入最高的员工是" << highestEmployeeId << ",其单月收入为:" << maxIncome << std::endl;
return 0;
}
```
在这个程序中,用户会被提示输入每个员工5个月的薪资,然后它会计算出最高月收入和对应员工的ID。
阅读全文