最大子段和!求错误指正!
题目:给出一个数列(元素个数不多于 10000),数列元素均为负整数、正整数、0。请找出数列中的一个连续子数列(这个子序列可以为空序列),使得这个子数列中包含的所有元素之和最大.输出这个最大和。例如数列为 4,-5,3,2,4 时,输出 9 ;数列为 1 2 3 -5 0 7 8时,输出 16。说明:如果这个最大和是负数,那么取0为最终答案。输入样例
7
1 2 3 -5 0 7 8
输出样例
16
问题:我自己写的代码交上去后测试的一些数据是对的,但是还是有测试数据是错误的,不知道代码错在哪了,求大神看一看!
#include<stdio.h>
int maxAdd(int list[],int n)
{
int max;
int sum,i,j,k;
max=0;
for(i=0;i<n;i++){
for(j=i;j<n;j++){
sum=0;
for(k=i;k<=j;k++){
sum=sum+list[k];
}
if(max<sum){
max=sum;
}
}
}
return max;
}
int main()
{
int n;
int list[10001];
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&list[i]);
}
if(maxAdd(list,n)<0){
printf("0\n");
}
else{
printf("%d\n",maxAdd(list,n));
}
return 0;
}