21xrx.com
2024-09-20 00:59:23 Friday
登录
文章检索 我的文章 写文章
如何用C++打印回文矩阵?
2023-07-12 12:20:11 深夜i     --     --
C++ 回文矩阵 打印

回文矩阵是一种非常有趣的矩阵,它在水平方向和垂直方向中心两侧的元素对称,形成一种像回文诗一样的美妙效果。如果你想用C++语言打印出这样的矩阵,可以按照下面的步骤来实现。

第一步,定义矩阵大小和数据类型。我们可以定义一个二维int数组,用来存储矩阵中的元素,同时定义矩阵的行和列数。


const int rows = 5;

const int cols = 5;

int matrix[rows][cols];

第二步,填充矩阵。为了打印出一个回文矩阵,我们需要将数组中的元素按照一定的规律填充。一种简单的方法是先将矩阵的数值从左往右、从上往下依次填充,然后再将右下角到左上角的对角线两侧的元素进行对称,即可得到回文矩阵。


for (int i = 0; i < rows; i++) {

  for (int j = 0; j < cols; j++) {

    matrix[i][j] = i * cols + j + 1;

  }

}

for (int i = 0; i < rows; i++) {

  for (int j = 0; j < cols / 2; j++) {

    matrix[i][cols - j - 1] = matrix[i][j];

  }

}

for (int i = 0; i < rows / 2; i++) {

  for (int j = 0; j < cols; j++) {

    matrix[rows - i - 1][j] = matrix[i][j];

  }

}

第三步,打印矩阵。在控制台输出矩阵中的每一个元素,使用制表符来调整输出格式。


for (int i = 0; i < rows; i++) {

  for (int j = 0; j < cols; j++) {

    cout << matrix[i][j] << "\t";

  }

  cout << endl;

}

完整代码如下:


#include <iostream>

using namespace std;

const int rows = 5;

const int cols = 5;

int matrix[rows][cols];

int main() {

  for (int i = 0; i < rows; i++) {

    for (int j = 0; j < cols; j++) {

      matrix[i][j] = i * cols + j + 1;

    }

  }

  for (int i = 0; i < rows; i++) {

    for (int j = 0; j < cols / 2; j++) {

      matrix[i][cols - j - 1] = matrix[i][j];

    }

  }

  for (int i = 0; i < rows / 2; i++) {

    for (int j = 0; j < cols; j++) {

      matrix[rows - i - 1][j] = matrix[i][j];

    }

  }

  for (int i = 0; i < rows; i++) {

    for (int j = 0; j < cols; j++) {

      cout << matrix[i][j] << "\t";

    }

    cout << endl;

  }

  return 0;

}

运行程序,即可看到输出如下的回文矩阵。


1    2    3    2    1

6    7    8    7    6

11   12   13   12   11

6    7    8    7    6

1    2    3    2    1

通过这种方法,我们不仅学会了如何用C++语言打印回文矩阵,还深入理解了如何按照一定规律填充一个二维数组。希望这篇文章能够对你的C++编程之路有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章