血和眼泪在一起滑落 2021-11-28 17:18 采纳率: 62.5%
浏览 6
已结题

请问为什么原先的做法不行?(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

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月6日
    • 创建了问题 11月28日

    悬赏问题

    • ¥30 微信小程序蓝牙数据透传
    • ¥15 加氢站氢负荷数据集来源
    • ¥15 umi接入sentry遇到问题
    • ¥15 HBuilderX打包H5网页,扫码模块无法使用
    • ¥15 Javascript跳转页面后,无法执行后面代码,如何解决?
    • ¥15 echarts绘制图表
    • ¥15 请教两个关于高德地图定位不准的技术问题
    • ¥15 根据企业名称 对照两个文件 样本筛选/匹配
    • ¥15 Linux环境下CA证书更新问题
    • ¥15 sqlserver语句提取结果以外数据