夜与久歌 2022-12-01 21:54 采纳率: 84.6%
浏览 50
已结题

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

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

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

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-12-02 10:50
    关注

    供参考:

    #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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月10日
  • 已采纳回答 12月2日
  • 创建了问题 12月1日