//整形数组,有正数,有负数,有0,求连续子序列最大和;
//int a[]={-5,0,9,8,7,6,5,45,-100,9,0,56,45};
#include
int main(void)
{
int a[]={-5,0,9,8,7,6,5,45,-100,9,0,56,45};
int max=0;
int sum=0;
int i=0;
int len=sizeof(a)/sizeof(a[0]);
for(i=0;i
{
if(a[i]>=0)
{
sum+=a[i];
}
else
{
if(sum>max)
{
max=sum;
}
if(a[i]+sum<0)
{
sum=0;
}
else
{
sum+=a[i];
}
}
}
if(sum>max)
{
max=sum;
}
printf("%d\n",max);
return 0;
}
阅读(1420) | 评论(0) | 转发(0) |