题目:返回一个二维整数数组中最大子数组的和

  • 要求:(1)输入一个二维整形数组,数组里有正数也有负数。

(2)二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和。

(3)求所有子数组的和最大值。

  • 结对编程要求:(1)两人结对完成编程任务。

(2)一人主要负责程序分析,代码编程。

          (3)一人负责代码复审和代码测试计划。

          (4)发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突(附结对开发的工作照)

组员:20163946-谭松(分析)、20163976-韩文亮(编程)

程序分析:(1)先输入一个二维整数数组。

     (2)定义一个一维数组用来存放子矩阵的和。

        (3)求各个子矩阵的和,从左上角开始,确定一个起始点,再确定一个终止点,由此确定一个矩阵,计算此矩阵的和。从左上角到右下角,确定起始点终止点可以找出所有子矩阵。

     (4)将所有矩阵的和依次输出,每十个换行。

       (5)从存放子矩阵和的一维数组中比较大小找出最大的和,再输出。

程序代码:

 1 #include<iostream>
 2 #include <stdlib.h>
 3 using namespace std;
 4 #define N 100//定义数组最大范围
 5 int main()
 6 {
 7     int n,m,a,b,c,d,i,j,k=0; //n是行,m是列,a,b,c,d,i,j都是循环变量,k是sum[]的参数
 8     cout<<"please input the row and column of the array:";//输入二维数组的行和列
 9     cin>>n>>m;
10     if(n>N||m>N)//判断行和列是否超出范围
11     {
12         cout<<"please input again:";
13         cin>>n>>m;
14     }
15     int **A=new int*[n];//定义二维数组指针
16     for(i=0;i<n;i++)
17     {
18         A[i]=new int[m];
19     }
20     cout<<"please input array:"<<endl;//输入数组
21     for(i=0;i<n;i++)
22     {
23         for(j=0;j<m;j++)
24         {
25             cin>>A[i][j];
26         }
27     }
28     int sum[1000],max;//sum[1000]用来储存子数组的和,max为最大值
29     sum[0]=0;
30     max=A[0][0];
31     for(a=0;a<n;a++)
32     {
33         for(b=0;b<m;b++)
34         {
35             for(c=a;c<n;c++)
36             {
37                 for(d=b;d<m;d++)
38                 {
39                     for(i=a;i<=c;i++)
40                     {
41                         for(j=b;j<=d;j++)
42                         {
43                             sum[k]=sum[k]+A[i][j];
44                         }
45                     }
46
47                     k++;
48                     sum[k]=0;
49                  }
50             }
51         }
52     }
53     cout<<"the sum of the submatrices:"<<endl;
54     for(i=0;i<k;i++)
55     {
56         cout<<sum[i]<<" ";//输出各个子数组和
57         if((i+1)%10==0)//每十个换行
58         {
59             cout<<endl;
60         }
61         if(sum[i]>max)//求最大值
62         {
63             max=sum[i];
64         }
65     }
66     cout<<endl<<"the sum of the largest subarray of the array is"<<max<<endl;//输出最大值
67     return 0;
68 }

测试截图:

实验总结:两个人共同合作,一起解决遇到的问题,对于那个循环我们是共同经过实际验算,实际验证,用了两个多小时,编出循环体。难的部分也是循环体部分,预计五个小时,实际七个小时。

转载于:https://www.cnblogs.com/tansong/p/9825018.html

求二维整数数组中最大子数组的和(结对作业)相关推荐

  1. 课堂作业:返回一个二维整数组中最大子数组的和

    要求: 1.输入一个二维整形数组,数组里有整数也有负数. 2.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值.要求时间复杂度为O(n). 结对编程要求: ...

  2. 返回一个首尾相接的二维整数数组中最大子数组的和

    题目: ·返回一个二维整数数组中最大子数组的和. 要求: ·输入一个二维整形数组,数组里有正数也有负数. ·二维数组首尾相接,象个一条首尾相接带子一样. ·数组中连续的一个或多个整数组成一个子数组,每 ...

  3. 返回一个二维整数数组中最大子数组的和(二人结对)

    题目:返回一个二维整数数组中最大子数组的和 要求:1.输入一个二维整型数组,数组里有正数也有负数. 2.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值. ...

  4. 求二维数组中最大子数组的和

    任国庆  张博 之前我们讨论了在一维数组中求最大子数组的和,在此基础上我们开始讨论二维数组的最大子数组. 求二维数组的最大子数组思想是建立在以为数组.首先将数组的第一列看成一个一维数组,找到该列的最大 ...

  5. 课堂练习:返回一个二维数组中最大子数组的和

    1.题目: 返回一个二维数组中最大子数组的和. 2.要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子 ...

  6. 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)

    一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...

  7. 返回一个整数数组中最大子数组的和---环形数组

    一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]--A[j- ...

  8. 返回一个整数数组中最大子数组的和。

    一.要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果数组A[0]--A[j-1]首尾相邻,允许A[i-1],. ...

  9. 软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)

    题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为 ...

最新文章

  1. mllib逻辑回归 spark_Spark Mllib中逻辑回归
  2. 前端问题多行点点点的问题
  3. 第二单元 考点6-7商业银行和投资理财
  4. 將軍苑 - 收藏集 - 掘金
  5. python input 文件名_Python播放音频与录音
  6. 云桌面 瘦终端_云桌面选择云终端还是瘦客户机?
  7. crontab实现每秒执行
  8. react-native ios打包和Android打包
  9. 周三直播预告丨openGauss和MogDB的优化分享
  10. jsp的九大内置对象和作用域
  11. mysql中的union用法以及子查询综合应用
  12. rbf神经网络原理_【新书推荐】【2012.12】智能优化算法原理与应用(李士勇)...
  13. Illustrator中文版教程,如何在 Illustrator中设置图标项目?
  14. Centos删除virbr0网卡
  15. 消除“星期一综合症”--- 大前研一的周末时间分配术
  16. mysql 临时表权限_MySQL临时表浅析
  17. 分治回溯--Nqueen
  18. 浅谈UEBA基本实现步骤
  19. 【UVM基础】UVM 树形组织结构
  20. 手写sql语句面试题

热门文章

  1. 安装haproxy-1.6.9.tar.gz
  2. 河南科技学院教务管理系统服务器,河南科技学院教务管理系统http://jwgl.hist.edu.cn/jwweb/...
  3. linux 查看硬盘使用率
  4. C++中引用变量详解
  5. Linux 命令(68)—— realpath 命令
  6. 焦距 对焦 变焦--摄影基础理论(3)
  7. 通信达股票交易接口-Java语言
  8. C# FileStream类:文件读写
  9. 主机坏了,150能解决的问题我花了近8000
  10. 想当程序员,如何判断自己是否适合当前端程序员?