学了数据结构后将这道题运用线性表的形式做了一遍
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int a[10001];
int main()
{
int n;
scanf("%d",&n);
int i,j;
for(i = 0 ; i < n ;i++)
scanf("%d",&a[i]);
int sum = 0, start = 0, end = n - 1, temp = 0, tempi = 0, tempj = 0;
for(i = 0; i < n ;i++){
if(temp>=0){
temp+=a[i];
tempj = i ;
}
else{
temp = a[i];
tempi = i;
tempj = i;
}
if(temp > sum||(temp==0&&end == n-1))
{
start = tempi;
end = tempj;
sum=temp;
}
}
printf("%d %d %d\n", sum, a[start], a[end]);
return 0;
}