Problem1886--【高级语言程序设计】7.9 幻方矩阵检验

1886: 【高级语言程序设计】7.9 幻方矩阵检验

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 4  Solved: 4
[Submit] [Status] [Web Board] [Creator:]

Description

在 n×n 阶幻方矩阵(n<=15)中,每一行、每一列、每一对角线上的元素之和都是相等的。请编写一个程序,将这些幻方矩阵中的元素读到一个二维整型数组中,然后检验其是否为幻方矩阵,并将其按如下格式显示到屏幕上。要求先输入矩阵的阶数n(假设n<=15),再输入 n×n 阶矩阵,如果该矩阵是幻方矩阵,则输出“It is a magic square!”,否则输出“It is not a magic square!”。

Input

第一行先输入一个整数 nn<=15),第二行再输入 n * n矩阵,数字之间用空格隔开。

Output

输出其矩阵是否为幻方矩阵。是则输出"It is a magic square!",否则输出"It is not a magic square!"。

Sample Input Copy

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

Sample Output Copy

It is a magic square!

HINT

相关知识

  1. 二维数组的定义和使用:二维数组是一种存储多个元素的数据结构,可以用来表示矩阵。通过指定行和列的索引,可以访问和修改数组中的元素。
  2. 判断幻方矩阵的条件:判断一个矩阵是否为幻方矩阵,需要满足以下条件:
    • 每一行的元素之和都相等;
    • 每一列的元素之和都相等;
    • 对角线的元素之和相等,包括主对角线和副对角线。
#include  <stdio.h>
#define   N  10
void ReadMatrix(int x[][N], int n);
int IsMagicSquare(int  x[][N], int n);
int main(void)
{
    //=======begin=======




    //========end========
}
//函数功能:判断n×n阶矩阵x是否幻方矩阵,是则返回1,否则返回0
int IsMagicSquare(int  x[][N], int n)
{
    //=======begin=======






    //========end========
}
//函数功能:读入n×n阶矩阵x
void ReadMatrix(int x[][N], int n)
{
    //=======begin=======




    //========end========
}

Source/Category