题目:
1 #include<stdio.h> 2 int main() 3 { 4 int T,t,n,a[100010],i,sum,s,f,c=0,max; 5 scanf("%d",&T); 6 while(T--) 7 { 8 scanf("%d",&n); 9 for(i=1;i<=n;i++) 10 scanf("%d",&a[i]); 11 sum=0; 12 max=-99999999;//注意将max赋值为一个较小的赋值 13 t=1; 14 for(i=1;i<=n;i++){ 15 sum += a[i]; 16 if(sum > max){ 17 max=sum; 18 s=t; 19 f=i; 20 } 21 if(sum < 0){ 22 sum=0; 23 t=i+1; 24 } 25 } 26 printf("Case %d:\n%d %d %d\n",++c,max,s,f); 27 if(T != 0) 28 printf("\n"); 29 } 30 return 0; 31 }
易错分析:
1、注意格式问题
2、注意max的初始化
原文:http://www.cnblogs.com/wenzhixin/p/7266284.html