m0_73904004 2023-03-11 22:41 采纳率: 42.9%
浏览 48
已结题

C语言 数组 对称 对角线

这个问题,希望可以帮助一下已知M行N列二维0,1数组A,为某个二元关系的关系矩阵,判断该关系的性质。若该数组的主对角线都是1,则该关系是自反的;若该数组主对角线都是0,则该关系是反自反的;若该数组是对称数组则关系是对称的;若该数组中除主对角线以外,a=1,则a;=0.则该关系是反对称的。编程实现对关系性质的判断。例如:
数组:1010
0111
1111
0111
输出该关系是自反的对称的

  • 写回答

1条回答 默认 最新

  • 社区专家-Monster-XH 2023-03-11 22:58
    关注

    基于Monster 组和GPT的调写:

    
    #include <stdio.h>
    
    int main() {
        int M = 4, N = 4; // 数组的行数和列数
        int A[M][N] = {{1, 0, 1, 0},
                       {0, 1, 1, 1},
                       {1, 1, 1, 1},
                       {0, 1, 1, 1}}; // 定义关系矩阵数组A
        int i, j;
        int is_reflexive = 1, is_irreflexive = 1, is_symmetric = 1, is_antisymmetric = 1;
        // is_reflexive、is_irreflexive、is_symmetric、is_antisymmetric分别表示关系是否自反、反自反、对称、反对称
        for (i = 0; i < M; i++) {
            for (j = 0; j < N; j++) {
                if (i == j) { // 主对角线
                    if (A[i][j] == 0) {
                        is_reflexive = 0;
                        is_antisymmetric = 0;
                    } else {
                        is_irreflexive = 0;
                    }
                } else { // 非主对角线
                    if (A[i][j] != A[j][i]) {
                        is_symmetric = 0;
                        is_antisymmetric = 0;
                    }
                    if (A[i][j] == 1 && A[j][i] == 1) {
                        is_irreflexive = 0;
                    }
                    if (A[i][j] == 1 && A[j][i] == 1 && i != j) {
                        is_reflexive = 0;
                    }
                    if (A[i][j] == 1 && A[j][i] == 1 && i < j) {
                        is_antisymmetric = 0;
                    }
                }
            }
        }
        // 根据is_reflexive、is_irreflexive、is_symmetric、is_antisymmetric的值输出关系性质
        if (is_reflexive) {
            printf("该关系是自反的");
        }
        if (is_irreflexive) {
            printf("该关系是反自反的");
        }
        if (is_symmetric) {
            printf("该关系是对称的");
        }
        if (is_antisymmetric) {
            printf("该关系是反对称的");
        }
        return 0;
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月19日
  • 已采纳回答 3月11日
  • 创建了问题 3月11日

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP