• 第三周作业


    7-1 判断上三角矩阵 (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

    人家的正确的源代码

    
    #include<stdio.h>  
    
    int main()  
    
    {  
    
    	int T;
    
    	scanf("%d
    ",&T);		//输入方阵的个数 
    
    	
    
    	int i,j,t,flag;
    
    	int a[10][10],Tab[100];
    
    	for(t=1;t<=T;t++){
    
    		flag=1;				//flag值为1表示方阵是上三角矩阵 
    
    		scanf("%d
    ",&Tab[t]);		//输入每个方阵的行列数Tab[i] 
    
    		for(i=0;i<Tab[t];i++){
    
    			for(j=0;j<Tab[t];j++){
    
    				scanf("%d",&a[i][j]);		//输入每个方阵的元素 
    
    				if(i>j){					//判断该方阵是否为上三角 
    
    					if(a[i][j]!=0) {
    
    						flag=0;
    
    			
    
    					}
    
    				}
    
    			}
    
    		}
    
    		if(flag) printf("YES
    ");
    
    		else printf("NO
    ");
    
    	}
    
    	
    
    	return 0;
    
    }  
    
    

    我的答案错误的源代码

    
    #include<stdio.h>
    int main(void)
    {
    	int T;//定义矩阵的个数;
    	int n;//定义矩阵的阶数; 
    	int a[10][10];//定一个二维数组;
    	int i,j;//表示矩阵的行数和列数; 
    	int flag=0;
    
    	scanf("%d",&T);
    	
    	for(i=0;i<T;i++)//输入矩阵个数的循环; 
    	{ 
    	    flag=0;//确保不影响下次判断矩阵的结果; 
          scanf("%d",&n);//输入一个矩阵的阶数; 
    	    for(i=0;i<n;i++)//输出矩阵的行数的循环; 
    	    {
    	    	for(j=0;j<n;j++)//输出矩阵的列数的循环; 
    	    	{
    			    scanf("%d",&a[i][j]);
    			  }
    	    }
      } 
            for(i=0;i<n;i++)//进行判断是否为上三角矩阵 
            {
            	  for(j=1;j<n;j++)
    			     {
    				      if(a[i][j]==0)
    				       {
    				        flag=0; 
    			                 }
    				      else
    				     { 
    			    	   flag=1;
    			    	   break;
    			                }	
    			     }
    	      }		 
    			if(flag==0){
    				printf("YES
    ");
    			}
    			else{
    				printf("NO
    ");
    			}
    			    
    		
    		return 0;
        
    } 
    
    

    pta错误截图

    解决方法

    我不知道怎么改

    流程图

    pta正确截图

    我的感想

    我的源代码的矩阵的阶数用n表示,别人用一个数组表示,是不是错在此处?

  • 相关阅读:
    Unable to load the specified metadata resource
    Web开发人员速查卡
    vs 中大括号之间垂直虚线显示
    第4届华为编程大赛决赛试题解答(棋盘覆盖)
    assert()函数用法总结
    Win7安装VC++6.0已知的兼容性问题的解决方法
    VC6打开一个文件或工程的时候,会导致VC6崩溃而关闭
    浮点数取整.
    1.4 VC6.0在win7下安装的兼容性问题以及解决办法
    华为编程大赛_将字符数组内的数字排序
  • 原文地址:https://www.cnblogs.com/clayLJX/p/10541542.html
Copyright © 2020-2023  润新知