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

C语言实现矩阵转置交换行列输出结果错误如何解决?

问题根因

转置赋值逻辑正确,错误出在转置矩阵的输出循环逻辑:
转置后的reverseMatrixC尺寸为[N][M](对应N行M列),但输出时仍沿用了原矩阵的循环条件(外层遍历M行、内层遍历N列),和转置矩阵的实际尺寸不匹配,导致输出结果不符合预期。

修正方案

将转置矩阵的输出代码替换为以下内容即可:

printf("Reverse columns and rows in matrix C: \n");
for (i=0; i<N; i++){
   for (j=0; j<M; j++){
         printf("%d ", reverseMatrixC[i][j]);
   }
   printf("\n");
}

可选优化点

当前数值校验逻辑仅输出错误提示,未终止程序,若输入不符合0<N且M≤10的数值,后续矩阵操作仍会异常执行,建议在校验不通过的分支添加终止逻辑:

else {
    printf("Please enter valid number, which is 0 < N and M <= 10!");
    return 1; // 校验不通过直接结束程序
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:15:03