#include <stdio.h>
#define MAX(A,B) (A>B ? A:B)
int main(){
int arr[] = {1, -10, 20, 5, 7, -9, 13, -2, 30, 6, -7, 4};
int sum = max = i = 0, len = 12;
for(i=0;i<len;i++){
sum += arr[i];
max = MAX(sum, max);
if(sum<0)sum=0;
}
printf("the max is %d", max);
return 0
}
//要是求子数组的开始和结束位置就简单了,自由发挥吧