数组单步运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | 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); } } |