请问为什么原先的做法不行?(PTA)

题目是:

img

我原先的代码是:

#include <bits/stdc++.h>
using namespace std;
void tri(int a[100][100],int n,int m)
{
    int i,j;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            if(i>j)
            {
                if(a[i][j]!=0) m=0;
            }
        }
    }
}
int main()
{
    int t,n,h,m;
    int a[100][100];
    cin>>t;
    for(h=0;h<t;h++)
    {
        m=1;
        cin>>n;
        int i,j;
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                cin>>a[i][j];
            }
        }
        tri(a,n,m);
        if(m==1) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
    return 0;
}

结果:

img

后来把函数类型改成了int,并且去掉形参实参m:

#include <bits/stdc++.h>
using namespace std;
int tri(int a[100][100],int n)
{
    int i,j;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            if(i>j)
            {
                if(a[i][j]!=0) return 0;
            }
        }
    }
    return 1;
}
int main()
{
    int t,n,h,m;
    int a[100][100];
    cin>>t;
    for(h=0;h<t;h++)
    {
        m=1;
        cin>>n;
        int i,j;
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                cin>>a[i][j];
            }
        }
        if(tri(a,n)==1) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
    return 0;
}

结果:

img