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

C++薪资数组未更新求助:updateCOL函数未生效

问题:薪资未被updateCOL函数正确更新

你的代码核心问题出在updateCOL函数的薪资计算逻辑上,当前写法是给每个薪资加上COL/100(比如输入COL=2时,仅加0.02),这个增量相对于薪资本身可以忽略,所以看起来薪资没有更新。而你实际需要的是按COL百分比涨薪,也就是薪资增加原薪资的COL%。

修正后的updateCOL函数如下:

void updateCOL(double salary[NUM_EMPLOYEES], double COL)
{
    for (int i = 0; i < NUM_EMPLOYEES; i++)
    {
        // 正确计算:原薪资 + 原薪资 * COL%
        salary[i] = salary[i] * (1 + COL / 100.0);
        // 等价写法:salary[i] += salary[i] * (COL / 100.0);
    }
}

完整修正后的代码

#include <iostream>

using namespace std;

const int NUM_EMPLOYEES = 4;

void readData(string name[NUM_EMPLOYEES], double salary[NUM_EMPLOYEES]);
void updateCOL(double salary[NUM_EMPLOYEES], double COL);
double payroll(double salary[NUM_EMPLOYEES]);

int main()
{
    string name[NUM_EMPLOYEES];
    double salary[NUM_EMPLOYEES];
    double COL;

    readData(name, salary);

    cout << "Cost of living?" << endl;
    cin >> COL;

    updateCOL(salary, COL);

    for (int i = 0; i < NUM_EMPLOYEES; i++)
    {
        cout << name[i] << " $" << salary[i] << endl;
    }

    cout << endl
         << "Total Payroll: $" << payroll(salary) << endl;
    return 0;
}

void readData(string name[NUM_EMPLOYEES], double salary[NUM_EMPLOYEES])
{
    for (int i = 0; i < NUM_EMPLOYEES; i++)
    {
        cout << "Name salary? ";
        cin >> name[i] >> salary[i];
        cout << endl;
    }
}

void updateCOL(double salary[NUM_EMPLOYEES], double COL)
{
    for (int i = 0; i < NUM_EMPLOYEES; i++)
    {
        salary[i] = salary[i] * (1 + COL / 100.0);
    }
}

double payroll(double salary[NUM_EMPLOYEES])
{
    double payroll = 0;

    for (int i = 0; i < NUM_EMPLOYEES; i++)
    {
        payroll += salary[i];
    }

    return payroll;
}

验证结果

输入COL=2时,每个薪资会被乘以1.02,完全匹配你的预期输出:

  • John的32000 → 32000*1.02=32640
  • Jack的56000 → 56000*1.02=57120
  • Jane的65000 → 65000*1.02=66300
  • Jill的50000 → 50000*1.02=51000

另外说明:你传递数组的方式是正确的,C++中数组作为函数参数时,会自动退化为指针(虽然你还没学指针,但实际效果是函数内修改数组元素会影响main函数里的原数组,这部分逻辑没问题)。

内容的提问来源于stack exchange,提问作者icecreamocon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:35:24