编程实现输入一个n阶矩阵判断是否对称(关于主对角线对称)。c语言
时间: 2024-10-18 11:09:56 浏览: 81
在C语言中,你可以通过让用户输入一个二维数组,然后比较该数组与其转置数组是否相等来判断矩阵是否对称。以下是实现这个功能的一个简单示例:
```c
#include <stdio.h>
#define N 5 // 可以更改为需要的任意阶数
int isSymmetric(int matrix[N][N]) {
// 转置矩阵
int transpose[N][N];
for (int i = 0; i < N; i++) {
for (int j = 0; j < i; j++) {
transpose[j][i] = matrix[i][j];
}
for (int j = i + 1; j < N; j++) {
transpose[j][i] = matrix[i][j];
}
}
// 检查原始矩阵与转置矩阵是否相同
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (matrix[i][j] != transpose[i][j]) {
return 0; // 对称性不成立,直接返回false
}
}
}
return 1; // 所有元素都匹配,矩阵是对称的
}
int main() {
int n;
printf("请输入一个 %dx%d 的矩阵(以逗号分隔):\n", N, N);
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
scanf("%d", &matrix[i][j]); // 读取用户输入
}
}
if (isSymmetric(matrix)) {
printf("矩阵是对称的.\n");
} else {
printf("矩阵不是对称的.\n");
}
return 0;
}
```
用户需要按照指定的格式输入一个n阶矩阵(如:1,2,3,4,5,6,7,8,9)。程序会检查输入的矩阵与其转置是否一致,如果不一致则认为不对称。
阅读全文