please,大家看一下

判断关系是自反性,反自反性,既不是自反也不是反自反,为什么我这个案例输入进去后,输出结果是这个样子,是哪里的问题(刚学)

img

img

按照你的意思,只要有一个对角线的值为1,就是自反?然后break?
不应该是所有的都判断一遍?


int a = 1;
int b = 1;
for (int i = 0; i < n; ++i) {
    if (a[i][i] != 1) {
        a = 0;
    } else if (a[i][i] != 0) {
        b = 0;
    }
    
    if (a == 0 && b == 0) {
        break;
    }
}

if (a == 1) {
    //自反
} else if (b == 1) {
    //反自反
} else {
    //都不是
}

你的for循环在判断a【0】【0】=1后直接break结束整个循环了,可以用continue来结束本次循环进入下一个循环

把对角线元素想加,如果是n则自反,如果为0则反自反,如果0<结果<n,则既不是自反也不是反自反