给定由n个整数(可能有负整数)组成的序列(a1,a2,…,an),最大子段和问题要求该序列形如的最大值(1<=i<=j<=n),当序列中所有整数均为负整数时,其最大子段和为0。
#include <stdio.h>
#include<iostream>
using namespace std;
const int N = 8;
int main()
{
int n,arr[N];
cout<<"请输入数组大小:";
cin>>n;
cout << "所求序列为:";
for(int j=0;j<n;j++)
cin>>arr[j];
int proSum = 0,maxSum = 0;
for(int i=0;i<N;i++)
{
if(proSum<0)
proSum = arr[i];
else
proSum = proSum+arr[i];
if(maxSum < proSum)
maxSum = proSum;
}
cout << "该序列字段最大和为:" << maxSum << endl;
system("pause");
return 0;
}