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

#include<stdio.h>
#define N 100 
int a[N];
int main()
{
    int i,n,s=0,x,maxsum=0;
    printf("输入数值个数\n");
    scanf("%d",&n);
    printf("输入数组数值\n");
    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("最大子数组的和\n");
    printf("%d\n",maxsum); 
    return maxsum;
}

 

posted on 2018-11-04 17:32  桐颖  阅读(140)  评论(0编辑  收藏  举报