一、实现思路
再上一个实验基础上加上环,我们实现环的思想是每一列依次向此替换,直至替换出能出现的所有的二维数组,再用上一个求最大子数组的方法全部实现
二、实验代码
package com.minirisoft; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.Scanner; public class HuanTwoArray { public static int Exchange(int arr[][],int n,int m) { int t; for(int j=0;j<n-1;j++) { for(int i=0;i<m;i++) { t=arr[i][j]; arr[i][j]=arr[i][j+1]; arr[i][j+1]=t; } } return 0; } public static void ShowFirstArray(int arr[][],int n,int m) { System.out.println("转变后此时的数组为 "); for(int p=0;p<n ;p++ ) { for(int q=0;q<m ;q++ ) { System.out.print(arr[p][q]+" "); } System.out.println(); } } public static void ShowArr(int arr[][],int line1,int line2,int row1,int row2) { for(int i=line1;i<=row1;i++) { for(int j=line2;j<=row2;j++) { System.out.print(+arr[i][j]+" "); } System.out.println(); } } public static int GetSum(int arr[][],int n,int m,int k,int l) { int sum=0; for(int f=n;f<=k;f++) { for(int h=m;h<=l;h++) { sum+=arr[f][h]; } } return sum; } public static void main(String[] args) { int sum=0; int n; int m; int k; int l; Scanner sc=new Scanner(System.in); System.out.println("请输入二维数组为几行几列:"); int x=sc.nextInt(); int y=sc.nextInt(); int[][] arr = new int[x][y];//读取出的数组 int[]max = new int[y];//读取出的数组 System.out.println("请输入二维数组:"); for(int p=0;p<x;p++) { for(int q=0;q<y;q++) { arr[p][q]=sc.nextInt(); } } System.out.println("您二维数组为:"); for(int p=0;p<x ;p++ ) { for(int q=0;q<y ;q++ ) { System.out.print(arr[p][q]+" "); } System.out.println(); } int line1=0; int line2=0; int row2=0; int row3=0; for(int r=0;r<y;r++) { max[r]=arr[0][r]; Exchange(arr,x,y); ShowFirstArray(arr,x,y); for(n=0;n<x;n++) { for(m=0;m<y;m++) { for(k=n;k<x;k++) { for(l=m;l<y;l++) { sum=GetSum(arr,n,m,k,l); if(sum>max[r]) { max[r]=sum; line1=n; //保存第一个数的行 line2=k; //保存第二个数的行 row2=m; //保存第一个数的列 row3=l; //保存第二个数的列 } } } } } System.out.println("最大子数组的为:"); ShowArr(arr,line1,row2,line2,row3); System.out.println("最大子数组的和为:"+max[r]); } for(int r=0;r<y;r++) { if(max[r]>max[0]) { max[0]=max[r]; } } System.out.println("最大子数组的和为"+max[0]); } }
三、实验截图
四、体会心得
经过这次实验对二维数组的遍历更加了解。我们小对也感觉磨合期已过,合作更加融洽
五、小组成员:杨广鑫、郭健豪
时间: 2024-12-26 00:31:02