如何从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
相关产品推荐
相关产品推荐

