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

C++中如何将偶数连续存储到数组?代码问题求解

问题分析与正确实现

先说说你代码里的几个明显问题:

  • 语法错误:int i, ; 多了个逗号,属于无效的变量声明,编译器直接报错
  • 数组越界:num是长度为6的数组,合法下标只有0~5,但你的循环里i会跑到12,执行num[i] = i会访问数组范围外的内存,这属于未定义行为,程序可能崩溃或者输出乱码
  • 存储逻辑错了:你用循环变量i当数组下标,结果偶数都存在num[2]、num[4]这类位置,完全不是从num[0]开始的连续存储

满足需求的正确实现

情况1:自动生成6个偶数并存储显示

如果是要自动生成6个偶数(比如从2开始的连续偶数),不用预先初始化数组,只要用一个单独的变量跟踪数组的当前存储位置就行:

#include <iostream>

using namespace std;

int main() {
    int num[6]; // 未初始化,直接赋值覆盖
    int arr_pos = 0; // 记录数组当前要存的位置,从0开始

    // 生成偶数,直到填满数组
    for (int i = 2; arr_pos < 6; i += 2) {
        num[arr_pos] = i;
        arr_pos++;
    }

    // 逐个输出数组里的偶数
    cout << "存储的6个偶数:" << endl;
    for (int i = 0; i < 6; i++) {
        cout << num[i] << endl;
    }

    return 0;
}

情况2:用户输入6个偶数并存储显示

如果是需要用户手动输入6个偶数,逻辑更直接,循环接收输入依次存到num[0]到num[5]就行,还可以加个输入校验确保用户输入的是偶数:

#include <iostream>

using namespace std;

int main() {
    int num[6]; // 未预先初始化,直接接收输入

    cout << "请输入6个偶数:" << endl;
    for (int i = 0; i < 6; i++) {
        cin >> num[i];
        // 校验输入,不是偶数就重新输入
        while (num[i] % 2 != 0) {
            cout << "这不是偶数,请重新输入:" << endl;
            cin >> num[i];
        }
    }

    // 逐个显示输入的偶数
    cout << "你输入的6个偶数是:" << endl;
    for (int i = 0; i < 6; i++) {
        cout << num[i] << endl;
    }

    return 0;
}

核心逻辑说明

要在未预先初始化的数组里把偶数存到连续内存,关键就两点:

  • 用一个独立的下标变量(比如上面的arr_pos)来控制存储位置,从0开始,每存一个偶数就把这个变量加1,确保数组下标从0到5连续使用
  • 数组声明后不用特意初始化,直接对指定下标赋值就会覆盖内存里的随机值,这在C++里是合法操作
  • 一定要注意数组的合法下标范围,别越界访问,不然程序会出问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:50:31