对称举证判断问题

    xiaoxiao2021-03-25  125

    输入一个N维矩阵,判断是否对称。 
    输入描述:
      输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。   接下来的N行,每行包括N个数,表示N*N矩阵的元素。
    #include<stdio.h> int a[100][100]; int main(){ int i, j, N; bool flag = false; while (~scanf("%d", &N)){ flag=false; for (i = 0; i < N; i++){ for (j = 0; j < N; j++){ scanf("%d", &a[i][j]); } } for (i = 0; i<N; i++) for (j =0; j<i; j++){ if (a[i][j] != a[j][i]) { flag = true; break; } } if (flag) printf("No!\n"); else printf( "Yes!\n" ); } return 0; } 开始没有加flag=false/与printf中的\n,在牛客网怎样也通过不了,后加上之后就通过了。 原因:while循环一直有输入,若最开始不是对称矩阵,辣么第一输出时flag=ture,第二次输入时的flag就默认为ture,也就是无论第二次输入的是否是对称矩阵,都会返回不是对称矩阵。
    转载请注明原文地址: https://ju.6miu.com/read-24246.html

    最新回复(0)