问题描述
统计二维整数数组中,横向或纵向连续3个相邻元素的最大和。
输入说明:数组行数m列数n,二维整数数组中元素;
输出说明:此数组中横向或纵向连续3个相邻元素的最大和。
代码如下
/**************************************************/
/**************************************************/
/**************************************************/
/*统计二维整数数组中,横向或纵向连续3个相邻元素的最大和。
*
*输入说明:数组行数m列数n,二维整数数组中元素;
*
*输出说明:此数组中横向或纵向连续3个相邻元素的最大和。*/
/**************************************************/
/**************************************************/
/**************************************************/
package test_demo1;
import java.util.*;
public class Maxsum {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int m,n;
Scanner scanner=new Scanner(System.in);
System.out.println("请输入行数和列数:");
m=scanner.nextInt();
n=scanner.nextInt();
System.out.println("请输入"+m+"行"+n+"列"+"的二维数组:");
int a[][]=new int[m][n];
for(int i=0;i<m;i++){
for(int j=0;j<n;j++) {
a[i][j]=scanner.nextInt();
}
}
int MAX=0,MAX1=0,MAX2=0;
for(int i=0;i<m;i++){
int count=0,maxinum=0;//二维数组换行后标记位重置,求和重置
for(int j=0;j<n;j++) {
if(a[i][j]!=0&&count<3) {
maxinum+=a[i][j];
count++;
}
}
MAX1=Math.max(MAX1, maxinum);
}
for(int i=0;i<m;i++){
int count=0,maxinum=0;//二维数组换列后标记位重置,求和重置
for(int j=0;j<n;j++) {
if(a[j][i]!=0&&count<3) {
maxinum+=a[j][i];
count++;
}
}
MAX2=Math.max(MAX2, maxinum);
}
MAX=Math.max(MAX1, MAX2);
System.out.println(MAX);
}
}