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

嵌套for循环与二维数组问题求助:代码与教程一致却无法正常运行

问题解决:二维数组初始化错误导致输出不符
  • 错误核心:你初始化二维数组时误用了圆括号(),C语言规定数组初始化必须用大括号{}。(1,2)属于逗号表达式,只会返回最后一个值(比如(1,2)返回2,(3,4)返回4),所以你的数组实际被初始化为:

    int num[3][2] = {2, 4, 6};
    

    未被显式赋值的元素会自动设为0,最终数组内容是{{2,0}, {4,0}, {6,0}},这就是输出和预期不符的原因。

  • 修正后的代码:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(){ 
    
        int i, j;
        int num[3][2] = { {1, 2},
                          {3, 4},
                          {5, 6}
                        };
        for(j = 0; j < 3; j++){
            for( i = 0; i < 2; i++ ){
                printf("%d, ", num[j][i]);
            }   
            printf("\n");
        }
        return 0;
    }
    
  • 额外提醒:二维数组初始化时,每行元素用大括号包裹,外层再套一层大括号,这是规范写法,既能避免歧义,也能让代码可读性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:20:29