C++程序 检查二进制矩阵的水平和垂直对称性

C++程序 检查二进制矩阵的水平和垂直对称性

背景介绍

在计算机科学中,经常需要对矩阵进行各种操作。 比如说,我们需要了解矩阵是否对称。 在这篇文章中,我们将写一个C++程序,用于检查二进制矩阵的水平和垂直对称性。

程序实现

我们首先定义一个7×7的二进制矩阵,然后检查它是否对称。 我们通过使用两个for循环来遍历矩阵中的每一个元素。 然后,我们将矩阵的第一列与最后一列进行比较,第二列与倒数第二列进行比较,以此类推。 如果两列相同,我们就打印出“列对称性成立”。 我们也对矩阵的每一行重复相同的步骤,在水平方向检查矩阵的对称性。

#include <iostream>
using namespace std;

int main()
{
    int matrix[7][7] = {{1, 0, 0, 0, 0, 0, 1},
                        {0, 1, 0, 0, 0, 1, 0},
                        {0, 0, 1, 0, 1, 0, 0},
                        {0, 0, 0, 1, 0, 0, 0},
                        {0, 0, 1, 0, 1, 0, 0},
                        {0, 1, 0, 0, 0, 1, 0},
                        {1, 0, 0, 0, 0, 0, 1}};

    bool verticalSymmetry = true;
    for (int i = 0; i < 7; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            if (matrix[i][j] != matrix[i][6 - j])
            {
                verticalSymmetry = false;
                break;
            }
        }
    }

    if (verticalSymmetry)
    {
        cout << "列对称性成立" << endl;
    }

    bool horizontalSymmetry = true;
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 7; j++)
        {
            if (matrix[i][j] != matrix[6 - i][j])
            {
                horizontalSymmetry = false;
                break;
            }
        }
    }

    if (horizontalSymmetry)
    {
        cout << "行对称性成立" << endl;
    }

    return 0;
}

代码中,第一行我们声明一个7×7的矩阵,它由0和1组成。 我们定义了verticalSymmetry和horizontalSymmetry这两个布尔变量来表示矩阵是否具有垂直或水平对称性。 接下来,我们使用两个嵌套的for循环遍历每一个矩阵元素,然后比较两列或两行的元素是否相等。

代码说明

在代码中,如果两列或两行的元素不相等,那么我们将verticalSymmetry或horizontalSymmetry设置为false,并停止循环。 如果循环完成后,这两个变量值仍为true,则表明矩阵具有垂直或水平对称性。

结论

在这篇文章中,我们展示了如何使用C++语言编写一个程序来检查二进制矩阵的垂直和水平对称性。我们了解了如何使用for循环遍历矩阵元素,并检查列和行是否对称。 如果矩阵在垂直或水平方向对称,我们就可以判定它具有对称性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 示例