c语言 幻方矩阵中每一行、每一列、每一对角线上的元素之和都是相等的。输入一个5×5的矩阵,判断其是否为幻方矩阵。 【输入】 按行输入矩阵元素,每行元素以空格间隔。 【输出】 若是幻方矩阵,输出"幻方矩阵";否则输出"非幻方矩阵"。
时间: 2023-06-11 08:09:58 浏览: 234
下面是一个C语言的幻方矩阵判断程序:
```c
#include <stdio.h>
int main()
{
int matrix[5][5];
int row_sum[5] = {0}, col_sum[5] = {0};
int diagonal_sum1 = 0, diagonal_sum2 = 0;
// 输入矩阵
printf("请输入矩阵:\n");
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
scanf("%d", &matrix[i][j]);
row_sum[i] += matrix[i][j];
col_sum[j] += matrix[i][j];
if (i == j) diagonal_sum1 += matrix[i][j];
if (i + j == 4) diagonal_sum2 += matrix[i][j];
}
}
// 判断是否为幻方矩阵
int is_magic = 1;
int magic_sum = row_sum[0];
for (int i = 1; i < 5; i++) {
if (row_sum[i] != magic_sum || col_sum[i] != magic_sum) {
is_magic = 0;
break;
}
}
if (diagonal_sum1 != magic_sum || diagonal_sum2 != magic_sum) {
is_magic = 0;
}
// 输出结果
if (is_magic) {
printf("幻方矩阵\n");
} else {
printf("非幻方矩阵\n");
}
return 0;
}
```
程序中使用了两个数组`row_sum`和`col_sum`来分别存储每一行和每一列的元素之和,两个变量`diagonal_sum1`和`diagonal_sum2`来存储两条对角线的元素之和。
然后判断每一行和每一列的元素之和是否相等且等于对角线元素之和,如果都相等,那么就是幻方矩阵,否则不是。
阅读全文