C++编程实现判断n阶矩阵是否对称(关于主对角线对称)
时间: 2024-10-18 15:14:17 浏览: 64
在C++编程中,判断一个n阶矩阵是否对称(即关于主对角线对称),可以按照以下步骤进行:
1. 定义一个二维数组或动态数组来存储矩阵。
2. 遍历矩阵的上半部分(包括主对角线),对于每个元素(i, j),如果它位于对角线上(j == i),则不需要检查对称性;否则,比较它与其下对角线对应位置(i, n - 1 - j)的值是否相等。
3. 如果有任何一对非对角线元素的值不相等,则矩阵不对称,返回false。
4. 遍历结束后,所有元素都已检查过,说明矩阵是对称的,返回true。
下面是一个简单的示例代码:
```cpp
#include <iostream>
using namespace std;
bool isSymmetric(int matrix[n][n]) {
for (int i = 0; i < n; ++i) {
for (int j = 0; j <= i; ++j) { // 只需要遍历到i列
if (matrix[i][j] != matrix[j][n - 1 - i]) {
return false;
}
}
}
return true;
}
// 示例用法
int main() {
int n = 3;
int matrix[n][n] = {{1, 2, 3},
{2, 4, 5},
{3, 5, 6}};
if (isSymmetric(matrix)) {
cout << "矩阵是对称的.\n";
} else {
cout << "矩阵不是对称的.\n";
}
return 0;
}
```
阅读全文