写一份判断对称方阵的代码
时间: 2024-09-13 18:10:23 浏览: 43
判断一个数字是否是对称数字
以下是一个C++程序,用于判断给定的方阵是否是镜像对称的(即对称方阵)。程序中,我们首先检查输入矩阵是否是方阵(即行数和列数相等),然后检查每一行与其对应的行是否是对称的。
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
bool isSymmetricMatrix(const std::vector<std::vector<int>>& matrix) {
// 获取矩阵的大小
size_t n = matrix.size();
// 检查矩阵是否为方阵
for (size_t i = 0; i < n; ++i) {
if (matrix[i].size() != n) {
std::cerr << "矩阵不是方阵。" << std::endl;
return false;
}
}
// 检查矩阵是否对称
for (size_t i = 0; i < n; ++i) {
for (size_t j = 0; j < i; ++j) {
if (matrix[i][j] != matrix[j][i]) {
return false;
}
}
}
return true;
}
int main() {
// 示例矩阵
std::vector<std::vector<int>> matrix = {
{1, 2, 3},
{2, 5, 6},
{3, 6, 1}
};
// 检查矩阵是否对称
if (isSymmetricMatrix(matrix)) {
std::cout << "矩阵是对称的。" << std::endl;
} else {
std::cout << "矩阵不是对称的。" << std::endl;
}
return 0;
}
```
这段代码首先定义了一个函数 `isSymmetricMatrix`,该函数接受一个二维 `int` 类型的向量作为参数,返回一个布尔值表示这个矩阵是否是镜像对称的。在 `main` 函数中,我们创建了一个示例矩阵,并使用 `isSymmetricMatrix` 函数来判断它是否对称,并输出结果。
阅读全文