zoukankan      html  css  js  c++  java
  • 查找二维数组中子数组之和最大值 郭莉莉&&李亚文

    一。

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

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

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

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

    源代码:

    #include <iostream> 
    using namespace std;
      
    int a[100][100];
    int maxson(int M,int N)
    {
    	int xmin,xmax,ymin,ymax;
    	int m,n,p,q,t;
    	int i,j,max=a[0][0],sum=0;
    	for(xmin=0;xmin<M;xmin++)
    	  for(xmax=xmin+1;xmax<=M;xmax++)
    	       for(ymin=0;ymin<N;ymin++)
    	          for(ymax=ymin+1;ymax<=M;ymax++)
    		  {    sum=0;
    			  for(j=xmin;j<xmax;j++)
    				  for(i=ymin;i<ymax;i++)
    				  {
    					  sum=a[i][j]+sum;
    				  }
    					  if(max<sum) 
    					  {
    						  max=sum;
    						  m=xmin; n=xmax;
    						  p=ymin; q=ymax;
    					  }	 
    		  }
    	cout<<"最大子数组为"<<endl;
    	t=n-m;
    	for(i=p;i<q;i++)     
    	 for(j=m;j<n;j++)
    	 {	 if(j%t==m)
    	       cout<<endl; 
    	      cout<<a[i][j]<<'	';
    		 
    	 }
    		cout<<endl;
         return max;
    	
    }
    
    void main()
    {
    	int M=0,N=0,i,j;
    	while(!M)                               //检查输入的M,N否则重新输
    	{
    		cout<<"数组的行数: ";
    		cin>>M;
    		if(M<=0)
    		{
    			M=0;
    			cout<<"行数必须大于0"<<endl;
    		}
    	}
    	while(!N)
    	{
    		cout<<"数组的列数: ";
    	    cin>>N;
    		if(N<=0)
    		{
    			cout<<"列数必须大于0"<<endl;
    			N=0;
    		}
    	    cout<<"输入数组的值:";       //输入二维数组的值
    	    for(i=0;i<M;i++)
    	    	for(j=0;j<N;j++)
    			{
    		    	cin>>a[i][j];
    			}
    
    	}
    	cout<<"您输入的数组为:" ; //输出数组 
    	for(i=0;i<M;i++)     
    	 for(j=0;j<N;j++)
    	 {
    		 if(j%N==0)
    	       cout<<endl; 
    	      cout<<a[i][j]<<'	';
    	 }
    	 cout<<endl;
         cout<<"子数组和为:"<<maxson(M,N)<<endl;
    }
    

     2.运行结果

  • 相关阅读:
    BFPRT(中位数的中位数算法)
    View的事件体系
    Android的消息机制
    BInder机制总结
    Service总结
    IPC机制总结
    AIDL使用绑定启动远程Service出现Service Intent must be explicit: Intent
    线程协作与并发流程控制&AQS
    TCP相关问题整理
    USACO 2015 US OPEN Gold T3: Trapped in the Haybales
  • 原文地址:https://www.cnblogs.com/guolili/p/3611863.html
Copyright © 2011-2022 走看看