本文主要是介绍Tsukinai的第二十七个程序(幻方矩阵的判断),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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++;}}}elseprintf("It is not a magic square!\n");system("pause");return 0;
}
我的做法非常麻烦,尤其是这两个步骤
仅仅是j和i换了个位置,如果有大佬帮我简化一下代码,万分感谢!
这篇关于Tsukinai的第二十七个程序(幻方矩阵的判断)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!