一、实现思路
再上一个实验基础上加上环,我们实现环的思想是每一列依次向此替换,直至替换出能出现的所有的二维数组,再用上一个求最大子数组的方法全部实现
二、实验代码
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]);
}
}
三、实验截图
四、体会心得
经过这次实验对二维数组的遍历更加了解。我们小对也感觉磨合期已过,合作更加融洽
五、小组成员:杨广鑫、郭健豪