课堂练习第七周

合作过程:王浩负责编程,董浩男负责测试和审查。

设计思路:在上一次输出数组最大值的基础上,我会用一个变量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);
        }

         
    }

结果截图:

实验总结:对于循环和条件语句,在使用前应先理清逻辑关系,对于多个循环条件更应该注重这些。

原文地址:https://www.cnblogs.com/wanghao369/p/5396405.html