zoukankan      html  css  js  c++  java
  • 2019年春季学期第三周作业

    一、 判断上三角矩阵 (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)实验代码

    
                   # include<stdio.h>
                   int main (void)
                   {
                          int T;
                          scanf ("%d
    ",&T);
      
                          int i, j, t, flag;
                          int a[10][10],b[100];
                          for (i=1;i<=T;i++)
                          {
                                 flag=1;
                                 scanf("%d
    ",&b[i]);
                                 for (j=0;j<b[i];j++)
                                 {
                                        for (t=0;t<b[i];t++)
                                        {
                                                  scanf ("%d",&a[j][t]);
                                                  if (j>t)
                                                  {
                                                            if(a[j][t]!=0)
                                                            {
                                                                   flag=0;
                                                             }
                                                   }
                                         }
                                   }
                                   if (flag) 
                                   printf ("YES
    ");
                                   else
                                   printf ("NO
    ");
                          }
                          return 0;
                   }
    

    2)设计思路

    3)本题调试过程碰到问题及解决办法

    问题:编译错误;
    解决办法:通过Dev c++找到错误。
    4)运行结果图

    二、本周作业
    题目1:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
    输入:
    ···

    [1, -2, 3, 10, -4, 7, 2, -5]
    ···
    最大子数组为:
    ···

    [3, 10, -4, 7, 2]
    ···
    输出:
    ···

    18
    ···
    1)实验代码
    ···

                             # include<stdio.h>
                             # include<stdlib.h>
                             # include<string.h>
                             int main (void)
                            {
                                FILE * fp;
                                char op=',';
                                int i,j,b,c,n=8,max,flag;
                                int a[8];
    
                                if ((fp=fopen("C:\Users\Administrator\Desktop\huangchunyan.txt","w+"))==NULL){
    	                                  printf ("File open error!
    ");
    	                                  exit (0);
                                }
    
                                for (i=0;i<8;i++)
                               {
                    	             scanf("%d",&a[i]);
                                    }
                                    for (i=0;i<n;i++)
                                   {
    	                               flag=0;
    	                               for (j=i;j<n;j++)
    	                               {
    		                                 flag+=a[j];
    		                                 if (max<flag)
    		                                 max=flag;
    	                               }
                             }
                             for (i=0;i<n;i++)
                            {
                                          flag=0;
                                          for (j=i;j<n;j++)
                                          {
                                                    flag+=a[j];
        	                                        if (flag==max)
        	                                        {
        		                                          b=i;
        		                                          c=j;
        		                                          break;
    		                                }
                                             }
                              }
                              for (i=b;i<=c;i++)
                             {
    	                                   printf ("%d%c",a[i],op);
                                       fprintf (fp,"%d%c",a[i],op);
                                 }    
                                 fprintf (fp,"
    %d",max);
                             if (fclose(fp))
                             {
    	                            printf ("Can not close the file!
    ");
    	                            exit (0);
                              }
                              printf ("
    %d",max);
                              return 0;
                            }
    

    ···
    2)设计思路

    3)本题调试过程碰到问题及解决办法
    问题:不知道怎么求最大子数组,最大子数组输出错误;
    解决办法:问别人是怎么做的,思路是怎么样的,然后自己操作运行。
    4)运行结果图

    三、学习进度条

    四、心得
    觉的这次的作业很难,第二题只会做一半,感到自己知识的不足,还需要更努力。

  • 相关阅读:
    java.sql.SQLException: 数据大小超出此类型的最大值
    日志收集系统 ELK
    centos下mysql 数据库安装、调试
    Log4j应用
    使用webuploader实现大文件断点续传(前端部分)
    es6学习 -- 解构赋值
    es6学习 -- let和const
    关于禁止页面滚动的实践(禁止滚轮事件)
    匿名函数与闭包
    JS高级学习总结--面向对象
  • 原文地址:https://www.cnblogs.com/da123hcy/p/10537722.html
Copyright © 2011-2022 走看看