一。

在主函数中实现二维数组的输入、

代码主要函数maxson(),主要利用for()循环先查找出最大字数组的四角的坐标xmin,xmax,ymin,ymax来确定最大子数组,

在循环中算出之和,编写过程中行列的值赋值错误,但经过调试查找出来了;后来在输出最大子数组的地方遇到麻烦,

考虑不周全用普遍的  if(j%n==0)cout<<endl;来进行换行,导致出现错误,应改为if(j%n==m),m为最大子数组的第一列,

源代码:

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int a[100][100];
  5. int maxson(int M,int N)
  6. {
  7. int xmin,xmax,ymin,ymax;
  8. int m,n,p,q,t;
  9. int i,j,max=a[0][0],sum=0;
  10. for(xmin=0;xmin<M;xmin++)
  11. for(xmax=xmin+1;xmax<=M;xmax++)
  12. for(ymin=0;ymin<N;ymin++)
  13. for(ymax=ymin+1;ymax<=M;ymax++)
  14. { sum=0;
  15. for(j=xmin;j<xmax;j++)
  16. for(i=ymin;i<ymax;i++)
  17. {
  18. sum=a[i][j]+sum;
  19. }
  20. if(max<sum)
  21. {
  22. max=sum;
  23. m=xmin; n=xmax;
  24. p=ymin; q=ymax;
  25. }
  26. }
  27. cout<<"最大子数组为"<<endl;
  28. t=n-m;
  29. for(i=p;i<q;i++)
  30. for(j=m;j<n;j++)
  31. { if(j%t==m)
  32. cout<<endl;
  33. cout<<a[i][j]<<'\t';
  34.  
  35. }
  36. cout<<endl;
  37. return max;
  38.  
  39. }
  40.  
  41. void main()
  42. {
  43. int M=0,N=0,i,j;
  44. while(!M) //检查输入的M,N否则重新输
  45. {
  46. cout<<"数组的行数: ";
  47. cin>>M;
  48. if(M<=0)
  49. {
  50. M=0;
  51. cout<<"行数必须大于0"<<endl;
  52. }
  53. }
  54. while(!N)
  55. {
  56. cout<<"数组的列数: ";
  57. cin>>N;
  58. if(N<=0)
  59. {
  60. cout<<"列数必须大于0"<<endl;
  61. N=0;
  62. }
  63. cout<<"输入数组的值:"; //输入二维数组的值
  64. for(i=0;i<M;i++)
  65. for(j=0;j<N;j++)
  66. {
  67. cin>>a[i][j];
  68. }
  69.  
  70. }
  71. cout<<"您输入的数组为:" ; //输出数组
  72. for(i=0;i<M;i++)
  73. for(j=0;j<N;j++)
  74. {
  75. if(j%N==0)
  76. cout<<endl;
  77. cout<<a[i][j]<<'\t';
  78. }
  79. cout<<endl;
  80. cout<<"子数组和为:"<<maxson(M,N)<<endl;
  81. }

2.运行结果

[软件工程] 查找二维数组最大子数组的之和 郭莉莉&李亚文的更多相关文章

  1. 求一个二维整数数组最大子数组之和,时间复杂度为N^2

    本随笔只由于时间原因,我就只写写思想了 二维数组最大子数组之和,可以  引用  一维最大子数组之和 的思想一维最大子数组之和 的思想,在本博客上有,这里就不做多的介绍了 我们有一个最初的二维数组a[n ...

  2. 洛谷 P1972 [SDOI2009]HH的项链-二维偏序+树状数组+读入挂(离线处理,思维,直接1~n一边插入一边查询),hahahahahahaha~

    P1972 [SDOI2009]HH的项链 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含 ...

  3. 查找二维数组list[][]中的最大的子数组的和

    之前做过最大一维数组子数组的和的题目,现在将数组扩展成二维: 代码如下: #include<iostream> #define null -858993460 using namespac ...

  4. [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组

    1.数组基础 1.什么是数组:           同一类型数据的集合,就是一个容器. 2.数组的好处:           可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式:  (一 ...

  5. C#6 冒泡 折半查找 二维数组

    人类思维--计算机逻辑思维 逻辑思维--代码实现 写书法: 描红--临摹--碑贴--自成一体--草 章节复习: 数组:一维,二维,多维 一维:豆角.连续,同一类型. 定义:数据类型[] 数组名=new ...

  6. 求二维数组最大子数组的和。郭林林&胡潇丹

    求二维数组子数组的最大值,开始思路不太清晰.先从最简单的开始. 以2*2的简单数组为例找规律, 假设最大数为a[0][0],则summax=a[0][0],比较a[0][0]+a[0][1].a[0] ...

  7. 【剑指offer】二分查找二维数组

    1 2 3 4 5 6 7 8 9 3 3 1 2 3 4 5 6 7 8 9 10 3 3 12 2 3 4 5 6 7 8 9 10 例子输出: Yes No No 时间限制:1 秒 内存限制:3 ...

  8. C#学习笔记04--排序/查找/二维数组/交叉数组

    一. 冒泡排序(重点) 思路:  每次比较把较小的放在前面, 大的放到后面; 图解:下图是最坏情况下的排序 ` 冒泡排序m个元素, 就有(m-1)趟排序, 第一趟m-1次, 第二趟 m-2次....  ...

  9. PHP使用array_filter查找二维数组中符合字段和字段值的数据集合

    1.方法: /** * 获取符合字段和字段值的数组集合 * @param array $data 待过滤数组 * @param string $field 要查找的字段 * @param $value ...

随机推荐

  1. jquery autocomplete实现读取sql数据库自动补全TextBox

    转自我本良人 原文 jquery autocomplete实现读取sql数据库自动补全TextBox 项目需要这样子一个功能,其他部门提的意见,只好去实现了哦,搞了好久才弄出来,分享一下. 1.前台页 ...

  2. MVC4中 访问webservice 出现无法找到资源的错误

    出现这个情况,是mvc将webservice.asmx解析成了控制器,下面先将这个控制器忽略 继续访问出现这样的错误: 下面修改配置文件 访问成功

  3. 每天一个 Linux 命令(15):tail 命令

    tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新, ...

  4. Python 配置日志

    Python 2.6+ def cfgLogging(): from logging.handlers import RotatingFileHandler console = logging.Str ...

  5. 使用的 SQL Server 版本不支持数据类型“datetime2”.

    错误原因,在使用ado.net entity的时候,entity使用的数据库是sqlserver 2008, 但后来实际使用中使用的数据库是sqlserver 2005, 使用的 SQL Server ...

  6. 如何彻底卸载Oracle

    如何彻底卸载Oracle 因为Oracle在Windows下的卸载颇有一些麻烦,如果不能完全卸载有可能影响将来的再次安装!常规卸载方法是运行Oracle的自带的卸载程序,可遗憾的是我在卸载时总不能完全 ...

  7. eclipse 引用项目(转)

    1. 项目右键 -->Properties 2. Java Build Path  a) Projects --> Add  b) Required Project Selection - ...

  8. 迪杰斯特拉(dijkstra)算法的简要理解和c语言实现(源码)

    迪杰斯特拉(dijkstra)算法:求最短路径的算法,数据结构课程中学习的内容. 1 . 理解 算法思想::设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合 ...

  9. python subprocess.Popen 非阻塞

    1.非阻塞设置subprocess.Popen(args, stdout=subprocess.PIPE,stderr=subprocess.PIPE) def non_block_read(outp ...

  10. asp.net中如何调取数据库中存储过程输出的两个变量

    public DataTable GetList_GenqtyNumPrice(int _peoid, int _genstorageid,int _goodsid) { DataSet ds = n ...