二维数组最大子数组

package duqu;
 
import java.util.Scanner;
public class Main {   
    public static void main(String[] args) {        
        // TODO Auto-generated method stub        
        System.out.println("输入你需要的阶层数:");       
        Scanner scan = new Scanner(System.in);        
        int n=scan.nextInt();//定义需要的阶层数n  
        int m=scan.nextInt();//定义需要的阶层数m
        int[][]array=new int[n][m];//定义一个n*m的数组array       
        System.out.println("输入数组的各个元素:");        
        for(int i=0;i<n;i++){            
            for(int j=0;j<m;j++){      
                array[i][j]=scan.nextInt();//给数组赋值            
                }        
            }        
        System.out.println("你输入的数组为:");        
        for(int i=0;i<n;i++){          
            for(int j=0;j<m;j++){ 
                System.out.print(array[i][j]+"\t"); 
                if(j==m)                   
                System.out.println();
                }
            }   //数组显示
        int sum=0,sum1=0,c=0,d=0;
        for(int i=0;i<n;i++) {
            for(int j=0;j<m;j++) {
                sum=sum+array[i][j];
            }
        }
        System.out.println("数组和为:"+sum);//数组和
        for(int i=0;i<n;i++) {
            c=c+array[i][0];
            if(c>sum)
                sum=c;
        }
        for(int j=0;j<m;j++) {
            d=d+array[0][j];
            if(d>sum)
                sum=d;
        }
        for(int i=1;i<n;i++) {
            for(int j=1;j<m;j++) {
                for(int a=0;a<i;a++) {
                    for(int b=0;b<j;b++) {
                        sum1=sum1+array[a][b];
                    }
                }
                if(sum1>sum)
                    sum=sum1;
            }
        }
        System.out.println("最大子数组和为:"+sum);
    }
}

 

posted @ 2019-03-18 13:55  20173667  阅读(148)  评论(0编辑  收藏  举报