第三周编程总结

题目一、 判断上三角矩阵
上三角矩阵指主对角线以下的元素都为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()
                 {
                   int T;
                       int i,j,t,count;
                   int a[10][10],Tab[t];
                   scanf("%d\n",&T);
                   for(t=1;t<=T;t++)
                   {
                       count=1;
                       scanf("%d\n",&Tab[t]);
                       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)
                                           {
                                                count=0;
                                             }
                                        }
                                  }
                         }
                         if(count)
                         printf("YES\n");
                         else printf("NO\n");
                    }
                    return 0;
                 }  

2)设计思路

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

问题:数组定义形式不对,我的不是数组长度
解决方式:看书上例题发现的
4)正确结果截屏

题目二、给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子数组为[3, 10, -4, 7, 2]

输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。

输出
在不删除原有文件内容的情况下,将最大子数组以及子数组的和写入文件。

1)实验代码

      #include<stdio.h>
     #include<stdlib.h>
    int main()
   {
       FILE *fp;
       int i,j,b,e,M=0,count=0;
       int a[8];
       if((fp=fopen("E:\\新建文件夹\\ZWY.txt","w+"))==NULL)
       {
          printf("File open error!\n");
          exit(0);
        }
        for(i=0;i<8;i++)
           {
        scanf("%d",&a[i]);
       }
          for(i=0;i<8;i++)
          {
                count=0;
                for(j=i;j<8;j++)
                {
                count=count+a[j];
                if(M<count)
                M=count;
        }
           }
       for(i=0;i<8;i++)
       {
         count=0;
         for(j=i;j<8;j++)
         {
           count=count+a[j];
           if(count==M)
          {
            b=i;
            e=j;
            break;
          }
        }
      }
     for(i=b;i<=e;i++)
     {
           fprintf(fp,"%d ",a[i]);
       printf("%d ",a[i]);
     }
     fprintf(fp,"\n%d",M);
     printf("\n%d",M);
     if(fclose(fp))
    {
    printf("Can not close the file!\n");
    exit(0);
    }
   return 0;
   }

2)设计思路

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

这题主要问题就是在前面有定义count并给其赋值,但是在for语句里面就没有写入count语句,所以运行结果不对
解决方法:在C++错误运行下进行检查,在for语句要有一个初始值才开始运行,否则运行有误
4)运行结果截图

二、学习进度条

三、学习感悟
这周老师没上课,很遗憾没能从老师那里学到新知识,但是在没有任何预习情况下做新题还是很困难,所以按照老师的要求去预习就没那么吃力,所以一切知识源于课本。其次就是第二个挑战题,对于我来说真的是个大挑战,因为做了9个小时的作业,起码三分之二时间都在挑战题上。我参考了不同的设计思路,复杂也好简单也好各有各的特别之处,但是相比那些简单的,还是很惭愧自己的编程,希望能够越来越好吧。对于这个题我请教了电信专业的同学,他给出的不是建文件的,但是他的编程里有很多我未触及到的东西,更是让我意识到自学和多看书的重要性。
以下是他的解法:

      #include<bits/stdc++.h>
      using namespace std;
      int judge (vector<int> arr, int len);
      int l = 0, m = 0;
      int main()
     {
         int n, sum, len;
         vector<int> a;
         do
         {
             cin >> n;
             a.push_back(n);
         }
         while (getchar() != '\n');
         len = a.size();
         sum = judge(a, len);
         cout << sum << endl;
         for(int i = l; i <= m - 1; i++) cout << a[i] << " ";
         cout << a[m];
        return 0;
     }
    int judge (vector<int> arr, int len)
    {
          int a = 0;
          int b = 0;
          for(int i = 0; i < len; i++)
         {
              b += arr[i];
              if (b > a)
              {
                   m++;
                   a = b;
              }
              if (b < 0)
             {
                  l = i + 1;
                 m = l;
                 b = 0;
             }
     }
     return a;
  }

原文地址:https://www.cnblogs.com/ZHLJ477/p/10537427.html

时间: 2024-11-02 14:09:04

第三周编程总结的相关文章

翁恺老师C语言入门第三周编程题之《数字特征值》

题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0.按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字.比如,对于342315,这个二进制数字就是001101. 这里的计算可以用下面的表格来表示: 数字 3 4 2 3 1 5 数位 6 5 4 3 2 1 数字奇偶 奇 偶 偶 奇 奇 奇

2019春季学期第三周编程总结

实验代码: include <stdio.h> define a 10 int main() { int T,n,i,h,l,j,p; int sz[a][a]; scanf("%d",&T); for(i=1;i<=T;i++) { scanf("%d",&n); for(h=0;h<=n-1;h++) { for(l=0;l<=n-1;l++) scanf("%d",&sz[h][l]);

3.15第三周编程总结

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

程序设计入门——C语言 第1周编程练习 1逆序的三位数(5分)

第1周编程练习 查看帮助 返回 第1周编程练习题,直到课程结束之前随时可以来做.在自己的IDE或编辑器中完成作业后,将源代码的全部内容拷贝.粘贴到题目的代码区,就可以提交,然后可以查看在线编译和运行的结果.不要在程序中输出题目要求输出的内容以外的东西. 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 1 逆序的三位数(5分) 题目

20172312『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结

20172312『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结 结对伙伴 学号 :20172315 20172318 姓名 :胡智韬 陆大岳 伙伴第一周博客地址: 对结对伙伴的评价:这俩人一开始各编各的还好,到后面就开始吵,从头吵到尾,陆大胖,胡志汪,还好到最后是把代码敲出来了,不容易不容易. 小组结对编程的照片(QQ群截图) 项目中自己负责的部分 代码的综合整理,错误查找,合并以及博客的撰写. 个人贡献度划分 彭霖:胡智韬:陆大岳=3:3:4 相关过程的截图 生成题目类驱动类的

第三周学习总结

20145336第三周JAVA实验报告 20145336 <Java程序设计>第三次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 姓名:张子扬 指导教师:娄嘉鹏 实验日期:2016.04.22 实验名称:Java开发环境的熟悉(Linux + Eclipse) 实验内容: XP基础 XP核心实践 相关工具 实验目的与要求: 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 完成实验.撰

android组团开发站立会议第三周第一次会议

会议时间:组队开发第三周  星期一   开始时间晚上9:30-10:00 会议地点:学一食堂 二楼 到会人员:李志岩  王亚蕊 安帅 薛禄坤 张新宇 孙存良 会议概要:              1.个人发言上周开发的结果 2.讨论解决每人遇到的问题 3.重新发布每个人的任务 具体内容:              1.张新宇: 上周开发结果:已经大概能链接android数据库sqlliet,但还不能熟练地进行增.删.改.查等功能 遇到的问题:由于时间不算太多,对sqlliet数据库开始学习并使用

2017面向对象程序设计(Java)第三周学习总结

白驹过隙,日月如梭,一转眼,我们已经度过了第三周的学习时光,随着时间的一天天流逝,我么对知识的积累也逐渐增多.当然,我们还有许许多多需要改进的地方.下面,我将对第三周的助教工作进行总结,望老师及同学们批评指正. 首先,针对上周的实验课,我总结了以下不足之处:1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开别的网页做别的事情. 3.有同学反映学习内容越来越晦涩难懂,抽象,不容易理解. 其次,针对博客,上周存在的不足有:1.整体来说,博客内容宽泛,过

入职第三周——总结前两周学习内容

入职第二周,我系统性的学习了mui框架以及angularjs,并且自己简单的写了一个登录页面.在做这个登录界面的时候,我接触到了html5+,这是hbulider自己写的接口,针对android原生api,在用html5写的时候可以调用html5+的接口,这样就可以使用android原生api,比如相机.录音或者通讯录等等. 入职第三周,我想通过项目来完善自己的技术,因为只是看看文档太无聊了,要真正动手做在实践中学习和成长才是正确的编程方式.所以我打算开发一个app,经过指导老师的建议,我准备开