填空题

给定程序中,函数fun的功能是:判定形参a所指的NxN(规定N为奇数)的矩阵是否是"幻方",若是,函数返回值为1;不是,函数返回值为0。“幻方"的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。


例如,以下3x3的矩阵就是一个"幻方":

4 9 2

3 5 7

8 1 6

不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

#include <stdlib.h>

#define N 3

int fun(int (*a)[N])

{

    int i,j,m1,m2,row,colum;

    m1=m2=0;

    for(i=0; i<N; i++)

    {

        j=N-i-1; 

        m1+=a[i][i]; 

        m2+=a[i][j];

    }

    if(m1!=m2)

    {

        return 0;

    }

    for(i=0; i<N; i++) 

    {

        /**********found**********/

        row=colum=__(1)__;

        for(j=0; j<N; j++)

        {

            row+=a[i][j]; 

            colum+=a[j][i];

        }

        /**********found**********/

        if((row!=colum) __(2)__ (row!=m1))

        {

            return 0;

        }

    }

    /**********found**********/

    return __(3)__;

}

main()

{

    int x[N][N], i, j;

    printf("输入一个3×3的矩阵:\n");

    for(i=0; i<N; i++)

    {

        for(j=0; j<N; j++) 

        {

            scanf("%d", &x[i][j]);

        }

    }

    if(fun(x)) 

    {

        printf("这个矩阵是幻方\n");

    }

    else

    {

        printf("这个矩阵不是幻方\n");

    }

    system("pause");

}

赣ICP备20007335号-2