在课堂上,那个两个数组首位连接的问题我象不太出来,在其他的同学讲解后我感觉一个同学的方法很好,核心是做一个二倍长度的数组。
package sumarray; import java.util.InputMismatchException; import java.util.Scanner; public class MaxSum { public static void main(String args[]) { int maxsum=0,sum=0; int array[]=new int[10]; Scanner in=new Scanner(System.in ); System.out.print("输入5个整数:"); for(int i=0;i<5;i++) { try//验证输入是否合法 { array[i]=in.nextInt(); array[i+5]=array[i]; } catch(InputMismatchException e) { break; } }for(int i=0;i<5;i++) { sum=0; for(int j=0;j<5;j++) { if(sum<0) sum=0; sum+=array[i+j]; if(sum>maxsum) maxsum=sum; } } System.out.print("子数组的最大值为:"+maxsum); } }