用C语言写一个如何判断n*n矩阵主对角线和次对角线元素相等的代码
时间: 2024-04-12 18:27:47 浏览: 196
当然,以下是使用C语言编写的代码示例:
```c
#include <stdio.h>
#include <stdbool.h>
bool checkDiagonalEquality(int matrix[][100], int n) {
int i, j;
bool isDiagonalEqual = true;
// 判断主对角线元素是否相等
for (i = 0; i < n - 1; i++) {
if (matrix[i][i] != matrix[i + 1][i + 1]) {
isDiagonalEqual = false;
break;
}
}
// 判断次对角线元素是否相等
for (i = 0, j = n - 1; i < n - 1; i++, j--) {
if (matrix[i][j] != matrix[i + 1][j - 1]) {
isDiagonalEqual = false;
break;
}
}
return isDiagonalEqual;
}
int main() {
int matrix[100][100];
int n, i, j;
printf("请输入一个n*n的矩阵,n的值:");
scanf("%d", &n);
printf("请输入一个%d*%d的矩阵:\n", n, n);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
bool isDiagonalEqual = checkDiagonalEquality(matrix, n);
if (isDiagonalEqual) {
printf("主对角线和次对角线元素相等\n");
} else {
printf("主对角线和次对角线元素不相等\n");
}
return 0;
}
```
这段代码首先会要求用户输入矩阵的维度n,然后要求用户输入一个n * n的矩阵。接下来,它会调用`checkDiagonalEquality`函数来判断主对角线和次对角线元素是否相等。最后,根据判断结果输出相应的提示信息。希望对你有所帮助!
阅读全文