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

C++动态二维数组输出矩阵格式问题:如何按行列展示矩阵?

修复动态二维矩阵单行输出的问题

我正在编写一个用动态二维数组实现两个方阵相乘的程序,目前处于测试阶段以确保数据存储正常。但运行代码时,两个矩阵均在单行输出,而非按行列排列的矩阵形式,请问该如何修复?

#include <iomanip> 
#include <iostream>
#include <array>

using namespace std;

int main()
{
  int **C, n, m; //pointer, rows, columns for matrix 1;
  int **D, p, q; //pointer, rows, columns for matrix 2;
  cout << "Enter the dimensions of your matrices: ";
  cin >> n >> m;
  p = n;
  q = m;
  cout << endl;
  C = new int *[n];
  D = new int *[p];
  for (int x=0 ; x < n; x++)
    {
      C[x] = new int [m];
    }

  for (int x=0 ; x < p; x++)
    {
      D[x] = new int [q];
    }

  cout << "Enter the values of your first matrix: ";
  for (int I=0 ; I < n; I++ )
    {
    for (int K=0 ; K < m; K++) 
      cin >> C[I][K];
    }

  cout << "Enter the values of your second matrix: ";
  for (int L=0 ; L < p; L++ )
    {
    for (int Z=0 ; Z < q; Z++) 
      cin >> D[L][Z];
    }
    
  for (int I=0 ; I < n; I++ )
    {
      for (int K=0 ; K < m; K++)
        cout << setw(4)<< C[I][K];
    }

  cout <<  endl;

  for (int L=0 ; L < p; L++ )
    {
      for (int Z=0 ; Z < q; Z++)
        cout << setw(4)<< D[L][Z];
    }
  
  cout << endl;
  
  }

修复方案

问题核心是输出矩阵时没有在每一行结束后换行。你当前的代码只完成了所有元素的连续输出,缺少行与行之间的换行操作。

只需要在输出每个矩阵的外层循环中,每跑完一轮内层循环(即输出完一行所有元素),添加cout << endl;即可:

修改后的输出部分代码:

// 输出第一个矩阵
for (int I=0 ; I < n; I++ )
{
  for (int K=0 ; K < m; K++)
    cout << setw(4)<< C[I][K];
  // 每一行输出完毕后换行
  cout << endl;
}

cout << endl;

// 输出第二个矩阵
for (int L=0 ; L < p; L++ )
{
  for (int Z=0 ; Z < q; Z++)
    cout << setw(4)<< D[L][Z];
  // 每一行输出完毕后换行
  cout << endl;
}

额外建议

  1. 变量命名尽量语义化,比如用row/col代替I/K这类单字母变量,提升代码可读性
  2. 动态分配的内存记得最后释放,避免内存泄漏:
// 释放矩阵C的内存
for (int x = 0; x < n; x++) {
    delete[] C[x];
}
delete[] C;

// 释放矩阵D的内存
for (int x = 0; x < p; x++) {
    delete[] D[x];
}
delete[] D;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:25:27