#include <stdio.h> int main() { int row = 0;// row 行 row 列 while (~scanf("%d", &row)) { int arr[row][row]; //向数组中输入元素 int flag = 1;//旗帜 for (int i = 0; i < row; i++) { for (int j = 0; j < row; j++) { scanf("%d", &arr[i][j]); } } //遍历数组 for (int i = 0; i < row; i++) { for (int j = 0; j < row; j++) { //主对角线是 从矩阵左上角 到 右下角的连线 //判断 if (i > j) { if (arr[i][j] != 0) { printf("NO\n"); return 0;//直接结束 } } } } printf("YES\n");//能走到这里说明 矩阵是 上三角矩阵 } return 0; }