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

在Eclipse中用C语言扩展二维数组维度的问题求助

解决3x3矩阵扩展为6x6矩阵的问题

嘿,作为C语言新手遇到这个问题很正常,我帮你梳理下代码里的问题,然后给出修正后的版本:

你的代码里的几个问题:

  • 未声明变量:你在嵌套循环里用了m和n,但没有提前声明它们,这会导致编译失败——C语言要求变量必须先声明再使用。
  • 打印时机错误:你在初始化完全零的H_final后立刻打印了,但替换单位矩阵的操作是在打印之后执行的,所以你看到的始终是初始的全零矩阵,看不到替换后的结果。
  • 缺少main函数的返回值:虽然C标准允许main函数省略return 0;,但加上它会让代码更规范,符合良好的编程习惯。

修正后的完整代码

#define ROWS 6
#define COLS 6
int main() {
    int i, j, a, b, m, n; // 新增m和n的声明
    // 创建3x3的H_initial矩阵
    int H_initial[3][3] = {{0, 0, 1}, {0, 1, 0}, {1, 0, 0}};
    
    printf("H_initial= \n");
    for(i = 0; i < 3; i++) {
        for(j = 0; j < 3; j++) {
            printf("%d\t", H_initial[i][j]);
        }
        printf("\n");
    }
    
    // 创建6*6的零矩阵
    int H_final[6][6];
    for(a = 0; a < 6; a++) {
        for(b = 0; b < 6; b++) {
            H_final[a][b] = 0;
        }
    }
    
    // 通过将1替换为2*2单位矩阵创建H_final
    for(i = 0; i < 3; i++) {
        for(j = 0; j < 3; j++) {
            if(H_initial[i][j] == 1) {
                for(m = 0; m < 2; m++) {
                    for(n = 0; n < 2; n++) {
                        if(m == n) {
                            H_final[2*i + m][2*j + n] = 1;
                        }
                    }
                }
            }
        }
    }
    
    // 打印最终的H_final矩阵
    printf("\nH_final=\n");
    for(a = 0; a < 6; a++) {
        for(b = 0; b < 6; b++) {
            printf("%d\t", H_final[a][b]);
        }
        printf("\n");
    }
    
    return 0; // 添加返回值
}

代码解释

  1. 变量声明:在开头把所有需要用到的循环变量i,j,a,b,m,n都声明了,避免编译错误。
  2. 调整打印位置:把H_final的打印放到替换操作之后,这样就能看到正确的扩展矩阵。
  3. 逻辑正确性:你的核心替换逻辑是对的——用2*i+m和2*j+n来定位6x6矩阵中对应2x2块的位置,当m==n时设置为1(单位矩阵的对角线元素),这个思路没问题。

预期输出

运行修正后的代码,你会得到这样的结果:

H_initial= 
0       0       1       
0       1       0       
1       0       0       

H_final=
0       0       0       0       1       0       
0       0       0       0       0       1       
0       0       1       0       0       0       
0       0       0       1       0       0       
1       0       0       0       0       0       
0       1       0       0       0       0       

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:27:36