Tsukinai的第二十七个程序(幻方矩阵的判断)
程序员文章站
2022-07-02 14:47:18
...
Tsukinai的第二十七个程序
检验并打印幻方矩阵。在下面的5×5阶幻方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,
试编写程序将这些幻方矩阵中的元素读到一个二维整型数组中,然后检验其是否为幻方矩阵,并将其按如下格式显示到屏幕上。
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
输出提示信息:“It is a magic square!\n”
输出格式:"%4d"(换行使用"\n")
#include <stdio.h>
#include<stdlib.h>
int main()
{
int i, j, Matrix[5][5],x[12]={0},flag = 1,n=0,m=1;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
scanf("%d", &Matrix[i][j]);
}
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
x[n] += Matrix[i][j];
}
n++;
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
x[n] += Matrix[j][i];
}
n++;
}
for (j = 0; j < 5; j++)
{
x[n] += Matrix[j][j];
}
n++;
for (j = 4; j >-1; j-- )
{
x[n] += Matrix[j][4-j];
}
n++;
for (i = 0; i < 11;i++)
{
if(x[i]==x[i+1])
flag = 1;
else
{
flag = 0;
break;
}
}
if (flag)
{
printf("It is a magic square!\n");
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
printf("%4d", Matrix[i][j]);
if (m % 5 == 0)
printf("\n");
m++;
}
}
}
else
printf("It is not a magic square!\n");
system("pause");
return 0;
}
我的做法非常麻烦,尤其是这两个步骤
仅仅是j和i换了个位置,如果有大佬帮我简化一下代码,万分感谢!
上一篇: 曹魏宗亲“八虎骑”之一,曹洪为何排不进三国二十四名将?
下一篇: vue 使用原生组件上传图片的实例