思路:先用二维数组存储数据,设置一个初始值为0的key值标记矩阵的状态,然后遍历矩阵,若发现对角线以下存在不为0的元素,则将key值置为-1,遍历完后检查key值,若key==0则判定为上三角矩阵,反之则判定为非上三角矩阵:

#include<stdio.h>
int main(){
    int n,a[10][10],i,j,key=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    for(i=1;i<n;i++)
        for(j=0;j<i;j++){
            if(a[i][j]!=0)
                key=-1;
        }
    if(key==0) printf("YES\n");
    else printf("NO\n");
}