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

如何从9×3二维数组中提取第三列并存储为一维数组

问题分析与修正

你的代码问题出在遍历了所有列——两层循环会把整个二维数组按行顺序全部存入一维数组,自然得不到仅第三列的结果。

错误原因

原代码的内层循环for (int c = 0; c < 3; c++)会遍历每行的所有三列,最终把start数组的所有元素按start[0][0], start[0][1], start[0][2], start[1][0]...的顺序存入end,这完全不是你要的第三列提取逻辑。

修正后的代码

直接跳过内层循环,指定取每行的第三列(C++数组下标从0开始,第三列对应下标2):

int index = 0;

// 提取第三列到一维数组
for (int r = 0; r < N; r++) 
{
    end[index++] = start[r][2];
}

结果说明

运行这段代码后,end数组会得到第三列的所有元素:[8, 9, 12, 5, 3, 10, 11, 12, 5],完全符合你的需求。

注意:要确保end数组的长度至少为9,且N的值设置为9(对应二维数组的行数)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:35:20