// 求数组的子数组之和的最大值.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <iostream>
using namespace std;
//求数组的子数组之和的最大值为负时,直接返回0
int MaxSum(int * a, int n)
{
int sum=0;
int b=0;
sum = b = 0;
for(int i=1; i<n; i++)
{
if(b<0)
b=a[i];
else
b+=a[i];
if(sum<b)
sum=b;
}
return sum;
}
int main()
{
int a[10]={1, 2, -3, 10, 4, 7, -2, -5};
cout<<MaxSum(a,10)<<endl;
system("pause");
return 0;
}