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

如何修复按日翻倍薪资计算程序的输出未累加问题?

修复薪资累加计算问题

嘿,我看到你的问题啦——现在程序每次循环都输出当天的薪资,没有把每天的钱加起来算总收入对吧?别担心,咱们几步就能搞定这个问题:

关键修改点

  • 首先,初始化totalPay变量为0,因为一开始还没有任何收入
  • 把循环里直接输出当日薪资的逻辑,改成将当日薪资累加到totalPay中,而不是每次都打印
  • 循环结束后,一次性输出累加后的总收入,并且用格式化输出保证美元金额显示两位小数(避免出现类似0.030000000000000002的奇怪小数)

修改后的完整代码

#include <iostream>
#include <iomanip> // 用于格式化输出小数位数

using namespace std;

int main() {
    // Declare Variables
    int numDays = 1;
    double money = 0.01;
    double totalPay = 0.0; // 初始化总收入为0

    // Input and validate days
    cin >> numDays;
    while (numDays < 1) {
        cout << "Enter a positive value ONLY!\n";
        cin >> numDays;
    }

    // 累加每日薪资到总收入
    for (int i = 1; i <= numDays; i++) {
        totalPay += money; // 把当日薪资加到总收入里
        money *= 2; // 次日薪资翻倍
    }

    // 格式化输出总收入,保留两位小数
    cout << "Pay = $" << fixed << setprecision(2) << totalPay << endl;

    return 0;
}

代码解释

  1. 我们添加了<iomanip>头文件,目的是使用fixed和setprecision(2)来强制输出两位小数,符合美元金额的显示习惯。
  2. 循环内部不再直接打印money,而是把它累加到totalPay中,这样循环结束后totalPay就是所有天数的总收入。
  3. 最后只需要一次输出操作,就能得到正确的总薪资结果——比如输入2天时,输出就是Pay = $0.03,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:02:35