#include<stdio.h>
#include<math.h>
int find_max_sum(int array[],int n)
{
int maxsofar=0;//当前最大值
int maxendinghere=0;//包含数组当前元素array[i]的最大值
for (int i=0;i<n;i++)
{
maxendinghere = max(maxendinghere+array[i],0);
maxsofar = max(maxsofar,maxendinghere);
}
maxsofar = max(0,maxsofar);//数组元素全部小于零时,取最大数组和为0
return maxsofar;
}
int main()
{
int data[10] = {-1,-5,9,2,-4,-6,-9,5,-23,-1};
int max_sum = find_max_sum(data,10);
for (int i=0;i<10;i++)
{
printf(" %d",data[i]);
}
printf("\nmax_sum:%d\n",max_sum);
return 0;
}