题目要求
每一行、每一列、每一对角线上的元素之和相等的矩阵叫魔方矩阵;请输入一个5*5的矩阵,要求判断该矩阵是否为魔法矩阵
代码
#include<stdio.h>
int sumrow(int a[5][5], int rows);
int sumcol(int a[5][5], int cols);
int main()
{
int a[5][5];
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
scanf_s("%d", &a[i][j]);
int t1 = 0, t2 = 0;
for (int i = 0; i < 5; i++)
{
t1 += a[i][i];
t2 += a[i][4 - i];
}
for (int i = 0; i < 5; i++)
if ((sumrow(a, i) != t1) || (sumcol(a, i) != t1) || (t1 != t2))
{
printf("该矩阵不是魔方矩阵!");
break;
}
else
{
for (int j = 0; j < 5; j++)
printf("%-5d", a[i][j]);
printf("\n");
}
}
int sumrow(int a[5][5],int rows)
{
int c, sum=0;
for (c = 0; c < 5; c++)
sum += a[rows][c];
return sum;
}
int sumcol(int a[5][5], int cols)
{
int r, sum = 0;
for (r = 0; r < 5; r++)
sum += a[r][cols];
return sum;
}