思路:每次读入一个数值v,先让其累加在sum中,max则取所有sum中的最大值,若sum小于0,则让sum直接置0,从新计数。
#include<stdio.h>
int main(
void)
{
int n,m;
// n 组测试数据 m 每组数据子串数
int i,v,sum,max;
scanf("%d",&
n);
while(n--
)
{
sum=
0;
max=-
101;
scanf("%d",&
m);
for(i=
0;i<m;i++
)
{
scanf("%d",&
v);
sum=v+
sum;
if(max<
sum)
{
max=
sum;
}
if(sum<
0)
{
sum=
0;
}
}
printf("%d\n",max);
}
return 0;
}
转载请注明原文地址: https://www.6miu.com/read-2150349.html