用c语言编写函数判断n阶矩阵是否对称,对称时返回1,不对称时返回0,主函数中定义矩阵并调用该函数判断
时间: 2024-12-15 09:30:30 浏览: 22
在C语言中,你可以编写一个函数来检查一个给定的n阶矩阵是否是对称的。首先,你需要定义一个二维数组来存储矩阵,并创建一个辅助函数来比较矩阵的左上和右下角元素。如果它们相等并且所有的对角线元素都匹配,那么矩阵就是对称的。
下面是一个简单的示例代码:
```c
#include <stdio.h>
// 辅助函数用于比较两个元素
int compare(int a, int b) {
return a == b;
}
// 函数检查矩阵是否对称
int is_symmetric(int matrix[n][n]) {
for (int i = 0; i < n / 2; i++) { // 只需遍历到中间行
if (!compare(matrix[i][i], matrix[n - 1 - i][n - 1 - i])) {
return 0; // 如果找到不相等的元素,矩阵不对称
}
for (int j = i + 1; j < n; j++) {
if (!compare(matrix[i][j], matrix[j][i])) {
return 0; // 如果找到不相等的元素,矩阵不对称
}
}
}
return 1; // 所有元素都匹配,矩阵是对称的
}
int main() {
int n = 4; // 矩阵的大小
int matrix[n][n]; // 定义矩阵
// 初始化矩阵(这里仅为示例)
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
int result = is_symmetric(matrix);
printf("Matrix is symmetric? %d\n", result);
return 0;
}
```
阅读全文