看起来难而已,但仔细观察,在第二行,也就是对应数组的第一行的时候看第一个,在第三行,对应数组第二行的时候看前两个,这么想是不是很简单?

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