#include<stdio.h> //解题思路:录入元素的同时判断是否为上三角矩阵 int main() { int n; scanf("%d",&n); //获取n int arr[n][n]; int i,j; int flag = 1; for(i = 0; i < n; i++) //输入n*n元素 { for(j = 0; j < n; j++) { scanf("%d",&arr[i][j]); if(i > j) //i>j时为下三角的元素 { if(arr[i][j] != 0){ //下三角元素中有不是0的 flag = 0; //标志不为上三角矩阵 //break } } } //if(flag == 0) break; //Note: 上面两个break语句其实可以直接退出循环并达成输出正确的结果 // 但是不满足题目的输入描述:共输入n*n个元素 } printf("%s",(flag?"YES":"NO")); return 0; }