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

C语言中如何用for循环打印数组行列?及重复打印问题排查

解决随机数数组按10行10列正确打印的问题

你的核心问题出在打印循环的索引计算上:内层循环每次都用j直接访问数组的前10个元素(0-9),完全没用到行号k,所以每一行都是重复打印前10个值。

解决方法

把打印数组的索引改成k * COLUMN + j,这样每一行的起始索引就是当前行号乘以列数,加上列偏移量j,就能正确定位到对应区间的元素。

修改后的打印循环代码:

/* Print out 10 rows & 10 columns */
for (int k = 0; k < COLUMN; k++) {
    for (int j = 0; j < COLUMN; j++) {
        // 用k*COLUMN计算当前行的起始偏移,加上j得到正确索引
        printf("%d ", numArray[k * COLUMN + j]); 
    }
    printf("\n");
}

额外说明

如果你之前直接把内层循环改成遍历整个数组(比如j从0到ARRAYSIZE-1),会失去行结构,因为没有在每10个元素后换行。现在的双层循环结构刚好控制:外层循环控制行数(10行),内层循环控制每行的列数(10列),通过索引偏移保证每一行取的是数组的下一个10元素区间。

另外注意:你的ARRAYSIZE定义是900,但当前代码只打印前100个元素(10*10),如果是故意只打印这部分,那没问题;如果想打印全部900个元素(90行10列),需要把外层循环的条件改成k < ARRAYSIZE / COLUMN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:00:58