返回最大子数和(首位相连)

#include<stdio.h>
#define N 100 
int a[N];
int main()
{
    int i,n,s=0,x,maxsum=0;
    printf("输入数值个数
");
    scanf("%d",&n);
    printf("输入数组数值
");
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
        a[n+i]=a[i];
    }
    for(i=0;i<2*n-2;i++)
    {
        s+=a[i];
        if(s<0)
            s=0;
        else if(s>maxsum)maxsum=s;
    } 
    printf("最大子数组的和
");
    printf("%d
",maxsum); 
    return maxsum;
}

原文地址:https://www.cnblogs.com/hyjht/p/9904850.html