一维数组,求最大子数组!!!

#include<stdio.h>
#define LENGTH 10

int max_subset(int *data,int len,int *s,int *l)
{
int max=0;
int i,j;
int sum=0;
int start,end;

for(i=0;i<len;i++)
{
if(sum<=0)
{
sum=data[i];
start=end=i;
}
else
{
sum=sum+data[i];
end=i;
}
if(sum>max)
{
max=sum;
*s=start;
*l=end;
}

}

if(max==0)
{
max=data[0];
*s=*l=0;
for(i=1;i<len;i++)
{
if(data[i]>max)
{
max=data[i];
*s=*l=i;
}
}
}
return max;
}
int main()
{
printf("输入10个数字 ");
int data[LENGTH];
for(int i=0;i<10;i++)
scanf("%d",&data[i]);
int result=0;
int s,l;
result=max_subset(data,LENGTH,&s,&l);
printf(" 最大子数组值是 %d 数组内部从 %d 到 %d ",result,s,l);

return 0;
}

原文地址:https://www.cnblogs.com/xiaocongjiejie/p/3639262.html