精华内容
下载资源
问答
  • 7-17 判断三角矩阵 (30分)

    千次阅读 2020-12-16 20:17:33
    本题要求编写程序,判断一个给定的方阵是否是三角矩阵三角矩阵包含上三角矩阵和下三角矩阵两种。 上三角矩阵指主对角线以下的元素都为0的矩阵;下三角矩阵指主对角线以上的元素都为0的矩阵;主对角线为从矩阵的...

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

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

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

    输入格式:

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

    输出格式:

    每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“upper triangular matrix”,如果输入的矩阵是下三角矩阵,输出“lower triangular matrix”,都不是输出“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 triangular matrix
    lower triangular matrix
    no

    num = int(input())
    s=[]
    for i in range(num):
        s1,s2=0,0
        count = int(input())
        for i in range(count):
            n=input()
            s.append([int(i) for i in n.split()])
        for index_h in range(count):
            for index_l in range(count):
                if index_l > index_h:
                    s1+=s[index_h][index_l]
                elif index_l < index_h:
                    s2+=s[index_h][index_l]
        if s1==0 and s2!=0:
            print("lower triangular matrix")
        elif s1!=0 and s2==0:
            print("upper triangular matrix")
        else:
            print("no")
        s=[]

     

    展开全文
  • 一,试题:判断三角矩阵 (15 分) 上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。 本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式: 输入第一行给出一个...

    一,试题:判断上三角矩阵 (15 分)
    上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。
    本题要求编写程序,判断一个给定的方阵是否上三角矩阵。
    输入格式:
    输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。
    输出格式:
    每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。
    输入样例:
    2
    3
    1 2 3
    0 4 5
    0 0 6
    2
    1 0
    -8 2
    输出样例:
    YES
    NO
    二,分析:1.虽然这道题有15分,难度并不很大,但同时也并不是很小,不过像老师说的,这是预习作业,利用我们还没学过的二维数组去进行解题,还没学到该处,但是觉得困难实属正常情况,其实对于该处二维数组,弄明白其原理:只不过是多利用了1至2次for循环而已!但是自己昨晚将这道题做到12点,而且向上面提交时,PTA尽然向我报错,我认为这是一件不可令人接受的事情,下面我将错误历程一一附上;
    2.矩阵问题,要涉及到其行下标,列下标,所以我们要用到二维数组;
    3.定义变量j,变量i分别作为行下标单位,变量i作为列下标单位;
    三,执行代码:话不多说了,现附上开始之时的执行代码:

      #include<bits/stdc++.h>//此处再也不多提了,作用自知
      using namespace std;
      int main()
    {
        int n;
        scanf("%d",&n);//定义的变量n,用于作为所要判断矩阵的个数
        for(int k=0;k<n;k++){
        int t,x;      //定义的变量t,用于作为矩阵的阶数,x作为一个临时判断的“计数器”
        scanf("%d",&t);
        int a[666][666];//此处的数组开辟空间定义就别太小了吧,尽量开辟大一点的吧,666个空间,也挺好的!
        for(int j=0;j<t;j++){
        for(int i=0;i<t;i++){
        scanf("%d",&a[j][i]);
            if(j>i&&a[j][i]!=0)  //关键步骤在此处,使用口头将此处翻译即:以一个3阶矩阵为例,如果第二行第一列,第三行第一列,第三行第二列的这几个数都不为0时,那么这个三阶矩阵就不是三角矩阵
            x=0;
        }
     }
     if(x==0){printf("NO\n");}//此处,即出现满足的上面的if情况时,我们将输出NO,不是三角矩阵 
     else {printf("YES\n");} //反之则反
    }
     return 0;
    }

    四,报错截图1580454-20190313165310480-354317089.png
    疑惑之处在于:在c++运行的情况都对,但是在PTA上却报错,一分都没有
    五,解决问题:究其原因,仔细排查,查找网友的相关方面的资料,发现自己在前面定义的变量x出现了问题,由于没有将变量x初始化,还有后面判断条件if出出现了一些小小的问题,
    六,更正后的代码:

      #include<bits/stdc++.h>//此处再也不多提了,作用自知
      using namespace std;
      int main()
    {
        int n;
        scanf("%d",&n);//定义的变量n,用于作为所要判断矩阵的个数
        for(int k=0;k<n;k++){
        int t,x=1;      //定义的变量t,用于作为矩阵的阶数,x作为一个临时判断的“计数器”,其中x=1代表上三角矩阵
        scanf("%d",&t);
        int a[666][666];//此处的数组开辟空间定义就别太小了吧,尽量开辟大一点的吧,666个空间,也挺好的!
        for(int j=0;j<t;j++){    //j代表数组的行下标,i代表数组的列下标
        for(int i=0;i<t;i++){
        scanf("%d",&a[j][i]);
            if(j>i&&a[j][i]!=0)  //关键步骤在此处,使用口头将此处翻译即:以一个3阶矩阵为例,如果第二行第一列,第三行第一列,第三行第二列的这几个数都不为0时,那么这个三阶矩阵就不是三角矩阵
            x=0;//这里的x=0,实则是代表下三角矩阵
        }
     }
     if(x){printf("YES\n");}//此处,即出现满足的上面的if情况时,我们将输出YES,是三角矩阵 
     else {printf("NO\n");} //反之则反
    }
     return 0;
    }

    七,正确运行截图:1580454-20190313171152476-846904564.png

    八,本次作业着实有些难,但是如果阅读了教材上的知识,难度就不会很大,只是后面一部分代码需要重点注意!
    九,运行流程图:1580454-20190313172441291-1688013302.png
    第二题;1.试题:基础作业(求最大子数组)
    本周没上课,但是请大家不要忘记学习。
    本周请大家完成上周挑战作业的第一部分:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
    例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子数组为[3, 10, -4, 7, 2]
    2.本题据说是很多公司的一道面试题,说实话我作起来是有一些难度的,借阅网友提供的一些资料才把这问题解决得差不多,其实直接使用低效率的暴力破解法是最通俗易懂的吧,详情已全部附注在代码上,直接附上代码吧
    3.执行代码:

      #include<iostream>
      using namespace std;
      int main()
    {
        int a[999];
        int n,y,x,i;//y是最大子数组的中的最后一个下标,x是其起始下标 
        scanf("%d",&n);
        for(i=0;i<n;i++)
        scanf("%d",&a[i]);//输入一组数字 
        int sum=0,max=0;//定义一个总数和,与一个中间变量max=0,具体详情在代码下方 
        for(i=0;i<n;i++)
        {
            sum+=a[i];//此处是总和 
            if(sum>max){y=i;max=sum;}//若这一组数从头加到最后总和为正数,证明该组数本身就是一个连续的最大子数组,并且用max标记该值 
            if(sum<0){sum=0;x=i+1;}//若这一组数从头加到某一处总和突然为负数,证明该组数从开头到此位置的这一段都不可以选取。sum=0,x=i+1代表从此位置的下一个数重新开始加起 
        } 
        for(i=x;i<=y;i++){
            printf("%d",a[i]);//此处是将那一个最大子数组输出 
        }
            printf("\n%d",sum);
    }

    4.问题基本解决:1580454-20190316110825384-620413001.png

    5.流程图:1580454-20190315172913338-879503057.png
    6.总结:了解的算法太少,掌握的知识不够多,日后必须要注重对c语言的学习,多向各位大咖请教,多刷题!

    转载于:https://www.cnblogs.com/wonzenkei/p/10524581.html

    展开全文
  • 判断三角矩阵

    千次阅读 2017-10-18 11:19:58
    判断三角矩阵判断一个矩阵是否符合上三角矩阵的要求(左上和右下所画的对角线下面全部为0)。

    判断上三角矩阵


    题目描述:

                     

    代码:
              
    #include<stdio.h>
    
    int main()
    {
        int T;
        scanf("%d",&T);
        for( int i = 0; i < T; ++i)
        {
            int n;
            scanf("%d",&n);
            bool judge = true;
            int ns;
            for(int j = 0; j < n; ++j)
            {
                for(int k = 0; k < n; ++k)
                {
                    scanf("%d",&ns);
                    if(k < j&&ns != 0)
                        judge = false;
                }
            }
            if(judge == false)
                printf("NO\n");
            else
                printf("YES\n");
        }
        return 0;
    }


    代码分析:
                   在该题目中,不需要对矩阵的数据进行存储,直接进行判断即可,这样可以减少代码所需要的空间。只需要将 i > j ( i 代表行 j 代表列)的数进行判断是否为0。
                   
    展开全文
  • c语言 判断三角矩阵

    千次阅读 2020-03-27 20:05:42
    本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式: 输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n...

    上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。
    本题要求编写程序,判断一个给定的方阵是否上三角矩阵。
    输入格式:
    输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。
    输出格式:
    每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。

    我的答案:

    #include<stdio.h>
    int main()
    {
    	int T;//待测矩阵的个数
    	scanf("%d", &T);
    	int i, j, t, flag, n;
    	int a[10][10];
    	for (t = 1; t <= T; t++)//循环矩阵个数
    	{
    		flag = 1;
    		scanf("%d", &n);//输入行列数
    		for(i = 0; i < n; i++)//把数字填入二维数组
    			for (j = 0; j < n; j++)
    			{
    				scanf("%d", &a[i][j]);
    					if (i > j)//当行大于列时,如果元素不为0,则不是上三角矩阵
    						if (a[i][j] != 0)
    						{
    							flag = 0;
    						}
    			}
    		if (flag)
    		{
    			printf("YES\n");
    		}
    		else
    		{
    			printf("NO\n");
    		}
    	}
    	return 0;
    }
    

    关于多维数组
    多维数组,可以通过多个下标去存取其中的数据元素,其定义格式类似于一维数组。比如二维数组:

    /*定义了一个二维数组, 第一维(称为行)大小是3, 第二维(称为列)大小为4*/
    int a[3][4] = {  
       {0, 1, 2, 3} ,   /* 行下标为0的第1行的初始化 */
       {4, 5, 6, 7} ,   /* 行下标为1的第2行的初始化 */
       {8, 9, 10, 11}   /* 行下标为2的第3行的初始化 */
    };
    
    /*定义了一个二维数组, 第二维(称为列)大小为4, 第一维(称为行)大小是2, 行数由初始化式子中的个数确定 */
    int matrix[][4] = {  
       {0, 1, 2, 3} ,   /* 行下标为0的第1行的初始化 */
       {4, 5, 6, 7} ,   /* 行下标为1的第2行的初始化 */  
    };
    
    /*修改第3行第4列(下标为[2][3])的元素的值*/
    a[2][3] = 23;
    
    展开全文
  • 0006 判断三角矩阵

    2018-12-02 18:51:54
    /-12 判断三角矩阵 (15 分) 上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。 本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式: 输入第一行给出一个正...
  • 7-1 判断三角矩阵

    千次阅读 2020-05-17 10:24:26
    7-1 判断三角矩阵三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。 本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式: 输入第一行给出一个正整数T,为...
  • C语言 判断三角矩阵

    万次阅读 2017-06-29 10:26:42
    三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。功能要求 ①输入格式: 输入第一行给出一个正整数TT,为待测矩阵的个数。接下来给出TT个矩阵的信息:每个矩阵信息的第一行...
  • 习题7-3 判断三角矩阵 (15 分) 上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。 本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式: 输入第一行给出一个正...
  • PTA判断三角矩阵

    2020-12-22 22:26:39
    标题PTA 7-14 判断三角矩阵 (15分) #include <stdio.h> int main() { int i,j,n,fan[10][10],k,n,count=0; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a); { for(j=0;j<a;j++) { for...
  • 7-3 判断三角矩阵

    2021-02-19 16:39:42
    本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式: 输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n...
  • 本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式: 输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出...
  • 习题7-3 判断三角矩阵 (15 分) 上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。 本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式: 输入第一行给出一...
  • 三角矩阵判断

    2020-12-13 16:56:33
    标题:上三角矩阵判断 题目描述 编写程序,输入一个正整数n(1<=n<=10)和n阶方阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”。 上三角矩阵即主对角线以下(不包括主对角线)的元素都为0...
  • 7-1 判断三角矩阵 (15分) 上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。 本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式: 输入第一行给出一个正整数T...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 789
精华内容 315
关键字:

判断三角矩阵