C语言编程实现判断n阶矩阵是否对称(关于主对角线对称)
时间: 2024-10-18 10:19:42 浏览: 38
在C语言中,判断一个n阶矩阵是否对称通常需要比较矩阵的每一行元素与其对应的列元素是否相等。如果所有的元素都满足这个条件,那么矩阵就是对称的。以下是一个简单的步骤:
1. 定义一个二维数组来表示矩阵,并创建两个指针,一个指向当前行的第一个元素(`row`),另一个指向当前列的第一个元素(`col`)。
2. 使用循环遍历矩阵,从左上角开始((0,0)位置),直到右下角(`(n-1, n-1)`位置)。对于每次迭代,检查矩阵的`row[i]`和`col[j]`(即i行j列的元素)是否相等。
3. 如果它们不相等,则矩阵不对称,可以直接返回`false`;如果所有元素都匹配,继续移动到下一个元素(`row++` 和 `col++`)。
4. 当所有元素检查完毕,如果都没有提前退出循环,说明矩阵是对称的,返回`true`。
下面是一个示例代码片段:
```c
#include <stdbool.h>
bool isSymmetric(int matrix[n][n], int size) {
for (int row = 0; row < size; row++) {
for (int col = 0; col <= row; col++) { // 只需遍到对角线上方即可
if (matrix[row][col] != matrix[col][row]) {
return false;
}
}
}
return true;
}
// 示例
int main() {
int matrix[3][3] = {{1, 2, 3}, {2, 4, 5}, {3, 5, 6}};
int size = sizeof(matrix)/sizeof(matrix[0]);
if (isSymmetric(matrix, size)) {
printf("矩阵对称\n");
} else {
printf("矩阵非对称\n");
}
return 0;
}
```
阅读全文