package 单步数组; import java.util.Scanner; public class shuzu { public static void main(String[] args) { //定义一个数组 int s[]=new int[5]; int a=0; int amax = 0; int max=0; for(;a<5;a++) { //键盘输入5个数 Scanner in=new Scanner(System.in); System.out.println("请输入数:"); s[a]=in.nextInt(); } //找子数组并相加比较数组和的大小直到找到最大值输出 for(int b=0;b<4;b++){ int sum=0; int asum=s[b]; for(int i=1;b+i<5;i++) { sum=asum+s[b+i]; if(b==0) { max=sum; }else { if(sum>max) { max=sum; } } asum=sum; if(b==0) { System.out.println("第"+i+"步"); System.out.println("当前数组和最大值为:"+asum+" 已经比较了:"+i+"个子数组 最大子数组是由第 1 个到第 "+(i+1)+"个"); }else if(b==1){ System.out.println("第"+(i+4)+"步"); System.out.println("当前数组和最大值为:"+asum+" 已经检查了:"+(4+i)+"个子数组 最大子数组是由第 2 个到第"+(i+2)+"个"); }else if(b==2) { System.out.println("第"+(i+7)+"步"); System.out.println("当前数组和最大值为:"+asum+" 已经检查了:"+(7+i)+"个子数组 最大子数组是由第 3 个到第"+(i+3)+"个"); }else if(b==3) { System.out.println("第"+(i+9)+"步"); System.out.println("当前数组和最大值为:"+asum+" 已经检查了:"+(9+i)+"个子数组 最大子数组是由第 4 个到第"+(i+4)+"个"); } } if(b==0){ amax=max; }else { if(max>amax){ amax=max; } } } System.out.println("数组最大和为:"+amax); } }