哪位帅哥美女能解决一下这个编程代码啊

如果方阵b(行列数相等的二维数组)各元素沿主对角线对称,则称其为对称矩阵,以下为5(5对称矩阵的例子:

编写函数Symmetric,判断一个N(N方阵b是否为对称矩阵(#define N 5)。
要求:
(1) 函数以指针形式接收二维数组名
(2) 数组元素的值自定
(3) 若为对称矩阵则返回1,否则返回0
(4) 测试数据至少包含两组,一为对称,另一个非对称

供参考:

#include <stdio.h>
#define N 5
int Symmetric(int(*a)[N], int rank)//判断一个N*N矩阵,是否是对称矩阵,是返回1,否返回0
{
    int i, j, flag;
    for (i = 0, flag = 1; i < rank; i++)
    {
        for (j = 0; j < i; j++)
        {
            if (a[i][j] != a[j][i])
            {
                flag = 0;
                break;
            }
        }
        if (j < i) break;
    }
    return flag;
}

void printmatrix(int a[][N], int Row, int Col)
{
    int i, j;
    for (i = 0; i < Row; i++) {
        for (j = 0; j < Col; j++)
        {
            printf(j == 0 ? "%d" : " %d", a[i][j]);
        }
        if (i < Row - 1)
            printf("\n");
    }
}
int main()
{
    int a[N][N] = { 0 }, i, j, n = 3;
    scanf("%d", &n);      //输入阶数
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
            scanf("%d", &a[i][j]); //输入矩阵元素

    if (Symmetric(a, n))//判断矩阵是否对称
        printf("YES\n");
    else 
        printf("NO\n");
    printmatrix(a, n, n); //输出矩阵
    return 0;
}