一个整形数组,要求其相邻子数组和的最大值

package mypackage;
import java.util.Scanner; 
public class main {
    public static int max(int a[],int n) //判断大小
    {
        int x=a[0];
        for(int i=0;i<=n;i++)    
        {
            if(a[i]>x) {x=a[i];}                
        }
        return x;
    }
    
    public static int add(int a[],int n) //加和
    {
        int x=0,i,j,k,g=0;
        int[] b=new int [100];
        int[] c=new int [100];
        for(i=0;i<=n-1;i++,g++)
        {
            int f=0;
            for(j=n-1;j>=i;j--,f++)
            {
                int y=0;                
                for(k=j;k>=i;k--)
                {
                    y=a[k]+y;                    
                }
                b[f]=y;
            }
            c[g]=max(b,f);
        }
        x=max(c,g);
        return x;
    }
    public static void main(String[] args) {
        int n;
        int[] a=new int [100];
        Scanner sc1 = new Scanner(System.in); 
        System.out.println("请输入数组个数:");
        n = sc1.nextInt(); 
        System.out.println("请输入数组:");    
        Scanner sc2 = new Scanner(System.in); 
        for(int i=0;i<=n-1;i++)
        {
            a[i] = sc2.nextInt();
        }
        System.out.println(add(a,n));
    }

}