求二维整数数组中最大子数组的和(结对作业)
题目:返回一个二维整数数组中最大子数组的和
- 要求:(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.输入一个二维整形数组,数组里有整数也有负数. 2.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值.要求时间复杂度为O(n). 结对编程要求: ...
- 返回一个首尾相接的二维整数数组中最大子数组的和
题目: ·返回一个二维整数数组中最大子数组的和. 要求: ·输入一个二维整形数组,数组里有正数也有负数. ·二维数组首尾相接,象个一条首尾相接带子一样. ·数组中连续的一个或多个整数组成一个子数组,每 ...
- 返回一个二维整数数组中最大子数组的和(二人结对)
题目:返回一个二维整数数组中最大子数组的和 要求:1.输入一个二维整型数组,数组里有正数也有负数. 2.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值. ...
- 求二维数组中最大子数组的和
任国庆 张博 之前我们讨论了在一维数组中求最大子数组的和,在此基础上我们开始讨论二维数组的最大子数组. 求二维数组的最大子数组思想是建立在以为数组.首先将数组的第一列看成一个一维数组,找到该列的最大 ...
- 课堂练习:返回一个二维数组中最大子数组的和
1.题目: 返回一个二维数组中最大子数组的和. 2.要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子 ...
- 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)
一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...
- 返回一个整数数组中最大子数组的和---环形数组
一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]--A[j- ...
- 返回一个整数数组中最大子数组的和。
一.要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果数组A[0]--A[j-1]首尾相邻,允许A[i-1],. ...
- 软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)
题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为 ...
最新文章
- mllib逻辑回归 spark_Spark Mllib中逻辑回归
- 前端问题多行点点点的问题
- 第二单元 考点6-7商业银行和投资理财
- 將軍苑 - 收藏集 - 掘金
- python input 文件名_Python播放音频与录音
- 云桌面 瘦终端_云桌面选择云终端还是瘦客户机?
- crontab实现每秒执行
- react-native ios打包和Android打包
- 周三直播预告丨openGauss和MogDB的优化分享
- jsp的九大内置对象和作用域
- mysql中的union用法以及子查询综合应用
- rbf神经网络原理_【新书推荐】【2012.12】智能优化算法原理与应用(李士勇)...
- Illustrator中文版教程,如何在 Illustrator中设置图标项目?
- Centos删除virbr0网卡
- 消除“星期一综合症”--- 大前研一的周末时间分配术
- mysql 临时表权限_MySQL临时表浅析
- 分治回溯--Nqueen
- 浅谈UEBA基本实现步骤
- 【UVM基础】UVM 树形组织结构
- 手写sql语句面试题
热门文章
- 安装haproxy-1.6.9.tar.gz
- 河南科技学院教务管理系统服务器,河南科技学院教务管理系统http://jwgl.hist.edu.cn/jwweb/...
- linux 查看硬盘使用率
- C++中引用变量详解
- Linux 命令(68)—— realpath 命令
- 焦距 对焦 变焦--摄影基础理论(3)
- 通信达股票交易接口-Java语言
- C# FileStream类:文件读写
- 主机坏了,150能解决的问题我花了近8000
- 想当程序员,如何判断自己是否适合当前端程序员?