在本次的软件工程课中,课上老师让我们编写程序:返回一个整数数组中最大子数组的和
在编写这个程序时,首先确认了分组的方法,首先题目要求了必须为连续的。
在子数组的分组上我通过在数组中不断增加相邻整数的方法,例如:数组为1、2、3、4、5、6,子数组就为1,1、2,1、2、3,1、2、3、4等,
建立二维数组进行各个子数组进行储存
Scanner sc=new Scanner(System.in); System.out.println("数组长度:"); int number=sc.nextInt(); int array[]=new int[number]; System.out.println("输入数组:"); for(int i=0;i<number;i++) { array[i]=sc.nextInt(); } int array1[][]=new int[number][number]; for(int i=0;i<number;i++) for(int j=0;j<=i;j++) array1[i][j]=array[j];
通过二维数组每行代表每个子数组,之后对每行数字进行相加总和计算出最大子数组。
在编写此此程序时,对于出现了数组越界的问题,而且这个程序中对子数组的分配上上有问题,通过了解有其他确立分组方式,会对此程序进行改进。