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

C++使用for循环对int vector乘60新增3个值仅输出2次问题求解

代码问题原因及修正方案

错误点说明

  • 核心错误:循环控制变量i被意外修改
    你在循环体中直接给控制循环次数的变量i赋值为计算得到的倍数结果,直接打乱了循环计数逻辑:
    1. 第一次循环初始i=0,满足i<=3的判断条件
    2. 执行i = seconds.at(i) * 60后,i的值被改写为60
    3. 执行push_back后,进入for循环的增量步骤i++,i变为61
    4. 第二次判断i<=3时61<=3不成立,循环直接终止,最终仅新增了1个元素,加上初始的1个一共2个,所以只会输出2次结果
  • 次要错误:循环次数设置不符合需求
    你需要新增3个元素,循环应该执行3次,使用i<=3的条件会执行4次,不符合预期。

修正后代码

修正思路:用单独的变量存储计算得到的新值,不要修改循环控制变量,调整循环次数条件。

#include <iostream>
#include <vector>

int main() {
    std::vector <int> seconds = { 1 };

    // 循环3次,新增3个元素
    for (int i = 0; i < 3; i++) {
        // 用单独变量存储新值,不要修改循环控制变量i
        int new_val = seconds.at(i) * 60;
        seconds.push_back(new_val);
    }
    
    for (int i = 0; i < seconds.size(); i++) {
        std::cout << seconds[i] << std::endl;
    }

    return 0;
}

运行后会输出4个值:1(秒)、60(分)、3600(小时)、216000,符合你要执行3次乘60、新增3个元素的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:36:03