You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求帮助:通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 15:10:25