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

控制台无法打印矩阵问题求助:给定C语言代码无任何输出

解决你的C语言矩阵输出问题

嘿,我帮你揪出代码里几个导致无法正常输出的问题,咱们一步步拆解并修正:

核心问题分析

  • 索引越界+printf位置错误:你把printf("%d \n ", C[i][j]);放在内层j循环的外面,这时候j已经跑完了0-2,变成了3,而你的矩阵下标只有0-2,访问C[i][3]属于越界访问,是未定义行为,自然打不出正确内容。
  • getchar打断流程:你把getchar()放在外层循环里,第一次循环就会卡住等输入,导致你还没看到输出程序就停了。
  • 矩阵运算逻辑不符合常规需求(可选):如果你的目标是做矩阵乘法,那当前的C[i][j]=A[i][j]*B[j][i]+C[i][j]逻辑不对,标准矩阵乘法需要三层循环求和。
  • 宏定义位置不规范:虽然部分编译器支持函数内定义宏,但按照C标准,宏应该放在函数外,避免兼容性问题。

修正后的代码

#include "stdio.h" 
// 宏定义移到函数外,符合C标准规范
#define row 3 
#define col 3 

int main() { 
    int A[row][col] = {{1,2,3},{2,3,4},{3,4,5}}; 
    int B[row][col] = {{1,0,0},{0,1,0},{0,0,1}}; 
    int i, j, k; // 新增k用于矩阵乘法的求和循环
    int C[row][col] = {{0,0,0},{0,0,0},{0,0,0}}; 
    int temp = 2; 

    // 先测试打印整数,验证输出是否正常
    printf("测试整数输出:temp = %d\n\n", temp);

    // 标准矩阵乘法逻辑(如果这是你的需求)
    for (i = 0; i < row; i++) { 
        for (j = 0; j < col; j++) { 
            for (k = 0; k < col; k++) {
                C[i][j] += A[i][k] * B[k][j];
            }
        }
    }

    // 打印矩阵A
    printf("矩阵A:\n");
    for (i = 0; i < row; i++) { 
        for (j = 0; j < col; j++) { 
            printf("%d ", A[i][j]);
        }
        printf("\n");
    }

    // 打印矩阵B
    printf("\n矩阵B:\n");
    for (i = 0; i < row; i++) { 
        for (j = 0; j < col; j++) { 
            printf("%d ", B[i][j]);
        }
        printf("\n");
    }

    // 打印矩阵C
    printf("\n矩阵C:\n");
    for (i = 0; i < row; i++) { 
        for (j = 0; j < col; j++) { 
            printf("%d ", C[i][j]);
        }
        printf("\n");
    }

    // 最后暂停看结果,先清空缓冲区(可选,避免残留换行跳过)
    // fflush(stdin); // 有些编译器需要这个,按需添加
    getchar();
    return 0; // 符合main函数的标准返回要求
}

关键修改说明

  1. 调整宏定义位置:把#define移到main外,兼容更多编译器。
  2. 新增测试打印:先打印temp的值,快速验证输出功能是否正常。
  3. 修正矩阵运算逻辑:用三层循环实现标准矩阵乘法,如果你的需求不是矩阵乘法,可去掉k循环,调整为你需要的计算逻辑,但要注意printf的位置。
  4. 规范打印逻辑:每个矩阵单独打印,按行输出元素,格式清晰,避免越界访问。
  5. 调整getchar位置:移到程序末尾,等所有输出完成后再暂停,不打断流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:22:51