hcycy08042 2023-11-20 23:03 采纳率: 0%
浏览 191

判断上三角矩阵,样例测试没问题,不知道为什么答案错误

实验7-2-5 判断上三角矩阵
分数 15

全屏浏览题目

切换布局
作者 C课程组
单位 浙江大学
上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。

本题要求编写程序,判断一个给定的方阵是否上三角矩阵。

输入格式:
输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:
每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。

输入样例:
3
3
1 2 3
0 4 5
0 0 6
2
1 0
-8 2
3
1 2 3
1 4 5
0 -1 6

输出样例:
YES
NO
NO

#include<stdio.h>
int main(void){
    int flag=0,T,i,j,r,n;
    int a[10][10];
    scanf("%d",&T);
    for(i=1;i<=T;i++){
        scanf("%d",&n);
        for(j=0;j<n;j++){
            for(r=0;r<n;r++){
                scanf("%d",&a[j][r]);
                if(j>r&&a[j][r]==0){
                    flag++;
                }
            }
        }
        if(flag==n*(n-1)/2||flag==1){
            printf("YES\n");
        }else{
            printf("NO\n");
        }
    }
    return 0;
}

用例答案正确但是pta显示答案都错误,不知道哪里有问题

  • 写回答

2条回答 默认 最新

  • hbcqg712 2023-11-20 23:14
    关注

    你的代码看起来像是一个用于判断一个矩阵是否为上三角矩阵的程序。上三角矩阵的定义是主对角线以下的元素都为0的矩阵。主对角线是从矩阵的左上角至右下角的连线。

    在你的代码中,你首先定义了一个二维数组a,然后通过嵌套循环逐个读取矩阵中的元素。如果发现某元素在主对角线以下并且值为0,就将flag加1。如果在遍历完成后flag的值等于n*(n-1)/2或者等于1,就输出"YES",否则输出"NO"。

    这个代码有一个问题:在计算flag的时候,你是按照n*(n-1)/2来计算的,这实际上是计算一个n*n矩阵中主对角线的元素个数。但是,你的flag是用来记录非主对角线但是值为0的元素的个数,所以这个计算方法不对。

    如果你想要修复这个问题,你需要改变计算flag的方式。你可以在读取每个元素后,检查其是否在主对角线上,如果不在并且值为0,就将flag加1。这样,flag就会正确地记录非主对角线但是值为0的元素的个数。

    这是一个修复后的代码示例:

    #include<stdio.h>  
    int main(void){  
        int flag=0,T,i,j,r,n;  
        int a[10][10];  
        scanf("%d",&T);  
        for(i=1;i<=T;i++){  
            scanf("%d",&n);  
            for(j=0;j<n;j++){  
                for(r=0;r<n;r++){  
                    scanf("%d",&a[j][r]);  
                    if(j!=r&&a[j][r]==0){  
                        flag++;  
                    }  
                }  
            }  
            if(flag==n*(n-1)/2){  
                printf("YES\n");  
            }else{  
                printf("NO\n");  
            }  
        }  
        return 0;  
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月20日

悬赏问题

  • ¥15 请问如何从gprmax中导出的merged.out文件获取雷达数据(应该是个二维数组吧),我看到网上很多对雷达数据的操作但是都没有说如何获得这个数据,因为out文件不能直接操作要转成其他格式是吧
  • ¥15 usb相机曝光度expos增加一点,获取图像速度显著变慢。
  • ¥15 如何解决如图问题:我创建的java maven项目中使用了03版本的excel,我先进行了文件读取的操作(可以正常取出,文件还未损坏),文件还未损坏),然后在进行了对同一文件的写入操作
  • ¥100 对接googlepay/googlewallet咨询
  • ¥15 Odoo 17系统中如何配置自动更新生产成本功能
  • ¥15 如何提取京东订单生成QQ支付链接
  • ¥50 游戏中的像素着色器获取到的法线贴图错误怎么解决
  • ¥15 把从欧空局下载的哨兵一号数据导入snap的时候出现这个问题该怎么解决😥
  • ¥15 蓝桥杯stm322016年省赛试题中遇到的问题
  • ¥15 有没有ND4J能用的MAVEN地址