课堂作业

  设计思想:首先建立两个数组,对其中的一个数组输入,找到其中最小的数字,把数组的值给另一个数组一一赋值,将该数组置空,从该数字起重新排序,然后进行判断,相加,得出最大子数组的和。

  实验代码:

  

package show3;

import java.util.Scanner;

public class demo{
    public static void main(String args[])
    {
        int[] a=new int[100];
        int[] g=new int[100];
        int k=0,i,sum=0;//判断数组的数字的个数
        Scanner b=new Scanner(System.in);
        System.out.println("输入要进行操作的数字的个数");
        int j=b.nextInt();
        System.out.println("请输入"+j+"个整数");
        for(i=0;i<j;i++)
        {
            a[i]=b.nextInt();
        }
        int min=a[0];
        for(i=0;i<j;i++)
        {
            if(a[i]<min)
            {
                min=a[i];
                k=i;

            }
        }
        
        for(i=0;i<j;i++)
        {
            g[i]=a[i];
            a[i]=0;
        }
        for(i=k+1;i<j;i++)
        {
            a[i-k-1]=g[i];
        }
        for(i=0;i<k+1;i++)
        {
            a[j-k+i-1]=g[i];
        }
        int max=a[0];
        for(i=0;i<j;i++)
        {
            if(min>=0)
            {
                sum=sum+a[i];
            }
            else
            {
                if(sum+a[i]>=0)
                    sum=sum+a[i];
                else sum=0;
            }
            if(sum>max) max=sum;
        }
        
        
        System.out.println("字数组最大和为"+max);
        
    }

}
View Code

  实验结果截图:

原文地址:https://www.cnblogs.com/my1204/p/5393870.html