判断上、下三角矩阵

题目:

给定一个三角矩阵,判断其是否为:上三角矩阵、下三角矩阵。

上三角矩阵指主对角线以下的元素都为0的矩阵;
下三角矩阵指主对角线以上的元素都为0的矩阵;
主对角线为从矩阵的左上角至右下角的连线。

输入矩阵是三种情况之一:上三角矩阵、下三角矩阵或者都不是。

输入格式:

输入第一行给出一个正整数T,为待测矩阵的个数。

接下来给出T个矩阵的信息:

每个矩阵信息的第一行给出一个不超过10的正整数n。

随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

每个矩阵的判断结果占一行。

如果输入的矩阵是上三角矩阵,输出“upper”,如果输入的矩阵是下三角矩阵,输出“lower”,都不是输出“no”。

输入样例:

3
3
1 2 3
0 4 5
0 0 6
2
1 0
-8 2
4
1 2 4 0
56 5 7 9
3 4 8 9
0 0 0 0

输出样例:

upper
lower
no

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

思路:

这段代码的主要功能是判断输入的矩阵是上三角矩阵还是下三角矩阵,或者既不是上三角矩阵也不是下三角矩阵。具体来说,程序首先通过 scanf 函数读取一个整数 n,表示接下来要读入 n 个矩阵。然后,程序通过嵌套的循环依次读入每个矩阵,并使用两个标志变量 qw 判断该矩阵是否为上三角矩阵或下三角矩阵。最后,程序根据 qw 的值输出相应的结果。

具体实现过程如下:程序使用一个二维数组 a 存储输入的矩阵,其中 a[x][y] 表示矩阵中第 x+1 行第 y+1 列的元素。在读入矩阵后,程序首先使用两个嵌套的循环遍历矩阵的下三角部分(即第 x 行第 y 列的元素,其中 x>y),如果发现任意一个非零元素,则将标志变量 q 设为 1,并跳出循环。然后,程序使用两个嵌套的循环遍历矩阵的上三角部分(即第 x 行第 y 列的元素,其中 x<y),如果发现任意一个非零元素,则将标志变量 w 设为 1,并跳出循环。最后,程序根据 qw 的值输出相应的结果。

代码:

#include<stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    int m;
    int a[100][100] = { 0 };
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &m);
        int q = 0;
        int w = 0; 
        int e = 0;
        for (int x = 0; x < m; x++)
        {
           for (int y = 0; y < m; y++)
            {
                scanf("%d", &a[x][y]);
            }
        }
        for (int x = 0; x < m; x++)
        {
            for (int y = 0; y < x; y++)
            {
                if (a[x][y] != 0)
                {
                    q = 1;
                    break;
                }
            }
            if (q == 1)
            {
                break;
            }
        }
        for (int x = 0; x < m; x++)
        {
            for (int y = x + 1; y < m; y++)
            {
                if (a[x][y] != 0)
                {
                    w = 1;
                    break;
                }
            }
            if (w == 1)
            {
                break;
            }
        }
        if (q == 0)
        {
            printf("upper\n");
        }
        else if (w == 0)
        {
            printf("lower\n");
        }
        else
        {
            printf("no\n");
        }
    }
    return 0;
}

相关推荐

  1. 判断三角矩阵

    2024-01-06 21:52:07       58 阅读
  2. 判断上、下三角矩阵

    2024-01-06 21:52:07       61 阅读
  3. ZZULIOJ 1125: 上三角矩阵判断

    2024-01-06 21:52:07       51 阅读
  4. 1054:三角形判断

    2024-01-06 21:52:07       36 阅读
  5. 高频SQL 判断三角形

    2024-01-06 21:52:07       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-06 21:52:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-06 21:52:07       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-06 21:52:07       82 阅读
  4. Python语言-面向对象

    2024-01-06 21:52:07       91 阅读

热门阅读

  1. 算法:剪绳子

    2024-01-06 21:52:07       55 阅读
  2. python深度拷贝

    2024-01-06 21:52:07       64 阅读
  3. 面试算法94:最少回文分割

    2024-01-06 21:52:07       69 阅读
  4. docker 相关常用命令---持续更新

    2024-01-06 21:52:07       55 阅读
  5. log4j RCE漏洞原理分析及检测

    2024-01-06 21:52:07       53 阅读
  6. Leetcode14-判断句子是否为全字母句(1832)

    2024-01-06 21:52:07       66 阅读
  7. C++返回值、返回引用、返回地址

    2024-01-06 21:52:07       59 阅读
  8. 六、书写命令

    2024-01-06 21:52:07       54 阅读