请求帮助:通过ID查找员工姓名(数组遍历C++实现)
问题解决方案
1. 修正Employee.cpp中的findEmployee函数
你当前的findEmployee函数逻辑完全偏离需求,它不需要重新创建员工数组并读取数据,而是要接收传入的数组、目标ID和数组长度,执行查找逻辑:
#include "Employee.h" // 保留原有的printEmployee和readEmployee函数不变 // 修正后的findEmployee函数 int findEmployee(const Employee array[], int tId, int num) { // 遍历整个员工数组 for (int i = 0; i < num; i++) { // 如果当前员工ID匹配目标ID,返回下标 if (array[i].id == tId) { return i; } } // 遍历结束未找到匹配ID,返回-1 return -1; }
2. 完善main.cpp中的查找结果处理逻辑
在调用findEmployee后,需要根据返回的索引判断是否找到员工,并输出对应结果:
#include "Employee.h" #include <iomanip> #include <iostream> using namespace std; int main() { // 保留原有的员工数组声明、数据读取和打印逻辑不变 //----Add code below for Step2---- cout << "Enter an id to look for: "; cin >> employeeId; employeeIndex = findEmployee(employeeArray, employeeId, NUM_OF_EMPLOYEES); // 根据查找结果输出信息 if (employeeIndex != -1) { cout << "Employee name: " << employeeArray[employeeIndex].name << endl; } else { cout << "Employee with ID " << employeeId << " not found." << endl; } return 0; // 补充main函数的返回语句 }
关键说明
findEmployee严格遵循头文件声明的参数列表,仅负责执行ID匹配查找,不处理数据读取或打印- 遍历数组时找到匹配ID立即返回下标,未找到则返回
-1(C++中常用的"未找到"标记) - main函数通过判断返回值是否为
-1,分别处理找到员工和未找到员工的场景
内容的提问来源于stack exchange,提问作者Yev
相关产品推荐
相关产品推荐

