📜  交换矩阵对角线的 C++ 程序(1)

📅  最后修改于: 2023-12-03 15:06:23.471000             🧑  作者: Mango

交换矩阵对角线的 C++ 程序

本文将介绍如何用 C++ 编写一个交换矩阵对角线的程序。 该程序通过输入一个矩阵,然后交换该矩阵的对角线元素,最后输出交换后的矩阵。

算法思路

该程序的算法实现非常简单,可以通过以下步骤来实现:

  1. 输入一个二维矩阵,该矩阵可以由用户自己输入或者程序生成。
  2. 交换矩阵的对角线元素,即将矩阵中第i行第i列的元素和第i行第n-i+1列的元素交换。
  3. 输出交换后的矩阵。
代码实现

程序的代码如下:

#include <iostream>
#include <vector>

using namespace std;

void swapDiagonalElements(vector<vector<int>> &matrix) {
    int n = matrix.size();
    for (int i = 0; i < n; i++) {
        int temp = matrix[i][i];
        matrix[i][i] = matrix[i][n-i-1];
        matrix[i][n-i-1] = temp;
    }
}

int main() {
    int n;
    cout << "请输入矩阵的大小:";
    cin >> n;

    vector<vector<int>> matrix(n, vector<int>(n, 0));

    cout << "请输入矩阵的元素:\n";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cin >> matrix[i][j];
        }
    }

    swapDiagonalElements(matrix);

    cout << "交换后的矩阵为:\n";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << matrix[i][j] << " ";
        }
        cout << "\n";
    }

    return 0;
}

下面是代码的逐行分解:

#include <iostream>
#include <vector>

using namespace std;

首先引入必要的头文件和命名空间。

void swapDiagonalElements(vector<vector<int>> &matrix) {
    int n = matrix.size();
    for (int i = 0; i < n; i++) {
        int temp = matrix[i][i];
        matrix[i][i] = matrix[i][n-i-1];
        matrix[i][n-i-1] = temp;
    }
}

定义一个函数 swapDiagonalElements(),该函数用于交换矩阵的对角线元素。

int main() {
    int n;
    cout << "请输入矩阵的大小:";
    cin >> n;

定义程序的主函数 main(),首先询问用户输入矩阵的大小。

    vector<vector<int>> matrix(n, vector<int>(n, 0));

    cout << "请输入矩阵的元素:\n";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cin >> matrix[i][j];
        }
    }

定义一个二维数组 matrix,用于存储矩阵的元素。程序通过两层循环,让用户输入矩阵的元素。

    swapDiagonalElements(matrix);

    cout << "交换后的矩阵为:\n";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << matrix[i][j] << " ";
        }
        cout << "\n";
    }

    return 0;
}

程序调用 swapDiagonalElements() 函数,对矩阵的对角线元素进行交换。最后程序输出交换后的矩阵。

总结

本文介绍了如何用 C++ 编写一个交换矩阵对角线的程序。程序的思路非常简单,通过交换矩阵中对角线元素的位置,实现了对矩阵的对角线的交换。