判断上三角矩阵为什么有两个测试点不对呢?

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
    int i,j,k;
    int n,T;
    int s1=0,s2=0;
    int sum=0;
    int t=0;
    int a[10][10],b[100];
    cin>>T;

    for(k=0;k<T;k++)
    {
        cin>>n; 

        for(i=0;i<n;i++)
       {
            for(j=0;j<n;j++)
               cin>>a[i][j];
       }
       for(i=1;i<n;i++)
       {
        for(j=0;j<i;j++)
         {
          if(a[i][j]==0)
             t=1; break;    
         }   
       }
       if(t==1) b[k]=1;
       else b[k]=0;
        t=0;
    }
    for(k=0;k<T;k++)
    {
        if(b[k]==1) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }

    return 0;
}

图片说明

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^