c的问题求帮助
struct subsequence{
int value;
int start;
int end;
};
subsequence maxsubsequence(int a[],int N)
{
subsequence maxsub;
maxsub.value=0;maxsub.start=0;maxsub.end=0;
int sum=0;
for(int i=0;i<N;i++)
{
sum+=a[i];
if(sum>maxsub.value)
{maxsub.value=sum;
maxsub.end=i;
}
else if(sum<0)
{
sum=0;
if(maxsub.value==0)maxsub.start=i+1;
}
}
return maxsub;
}
如果a[]={4,-5,4,5}maxsub.start好象不对,if(maxsub.value==0)maxsub.start=i+1;有人能帮忙说下错在哪吗,如果这段代码没错,那么if(maxsub.value==0)maxsub.start=i+1;这又起什么作用,如果VALUE=0并不能保证最大子序一顶向下跳