1 5 1 2 -1 3 -2
5
代码为借鉴,点击此处到源代码:
#include<string.h>
#include<stdio.h>
#include<limits.h>
#define Max 1000000
int a[Max+1];
int main()
{
memset(a,0,sizeof(a));//将数组初始化为0
int t,n,i;
scanf("%d",&t);
while(t--)
{
int max = -INT_MAX;//int型的最小数字
scanf("%d",&n);
for(i=1;i<=n;++i)//遍历每一个数字
{
scanf("%d",&a[i]);
if(a[i-1]>0)//寻找存在大于0的和
a[i] += a[i-1]; //从 i 连续到此的最大和 ,a[i]存储的并不是前i项的和
if(a[i] > max)
max = a[i]; //i之前总的最大值
}
printf("%d\n",max);
}
return 0;
}
原文地址:http://blog.csdn.net/u012437355/article/details/40707121