设计思路:用户输入一个数组本次规定为4个数的数组,可根据需要进行修改,关于如何求出子数组中和的最大值:应当先明确是从第一个不为负数的书开始算起的子数组求和才会为和的最大值,因此不为负数的那一个数为最大子数组的第一个数。
源代码:
package arrsum; import java.util.Scanner; public class Sum { public static void main(String[] args) { int arr[]= new int[10]; int i,sum=arr[0]; int temp=arr[0]; Scanner sc=new Scanner(System.in); System.out.println("请输入一个4个数的数组"); for(i=0;i<4;i++) { arr[i]=sc.nextInt(); } for(i=0;i<4;i++) { if(temp<0) temp=arr[i]; else temp+=arr[i]; if(temp>sum) sum=temp; } System.out.println(sum); } }
试验中的错误:误认为子数组和的最大值应从原数组最大的元素开始算起。
结果截图:
总结:解决问题的关键在于找出问题的关键所在,因此在以后的编程过程中我应当多加注意充分的思考。