合作过程:王浩负责编程,董浩男负责测试和审查。
设计思路:在上一次输出数组最大值的基础上,我会用一个变量k记录最大数组的起始下标,把在此下表之前的所有数字看成一段数组,对数组的和进行计算弱和为正值则进行合并,若为负数则最大数组和仍为此前的最大数组和。
遇到问题:在输入不同特点的数组时和会出现整个数组packageimport java.u
public class Sum { public static void main(String[] args) { int arr[]= new int[10]; int i,j,k=0,l=0,sum1=arr[0],sum=arr[0]; int temp2=arr[0],temp1=arr[0],temp3=arr[0]; Scanner sc=new Scanner(System.in); System.out.println("请输入一个5个数的数组"); for(i=0;i<5;i++) { arr[i]=sc.nextInt(); } for(i=0;i<5;i++) { if(temp2<0) { temp2=arr[i]; } else { k=i; temp2+=arr[i]; } if(temp2>sum1) sum1=temp2; } for(j=k-1;j>=0;j--) { temp1+=arr[j]; } if(temp1<0||temp1==temp2||l==1) temp3=sum1; else temp3=temp1+sum1; if(temp3>sum) sum=temp3; System.out.println(sum); } }
结果截图:
实验总结:对于循环和条件语句,在使用前应先理清逻辑关系,对于多个循环条件更应该注重这些。