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循环遍历矩阵元素,并检查列和行是否对称。 如果矩阵在垂直或水平方向对称,我们就可以判定它具有对称性。