把数组每一位向后移动一位,最后一位放在第一位。循环多次,每次求其最大子数组,存放到新数组内,比较新数组中最大数,并输出。
#include <iostream.h>
int Largest(int list[],int length)
{
int n,max=list[0];/
for(n=0;n<=(length-1);n++)
{
if(list[n]>max)
{
max=list[n];
}
}
return max;
}
int MaxSum2(int *A, int n)
{
int nStart = A[n-1];
int nAll = A[n-1];
for(int i = n-2;i>=0;--i)
{
if(nStart<0)
nStart = 0;
nStart += A[i];
if(nStart>=nAll)
{
nAll = nStart;
}
}
return nAll;
}
int main(void)
{
int sum[5]={1,-2,-3,-4,5};
int sum2[15]={0};
int gg[5]={0};
int kk[5]={0};
int t;
for(int k=0;k<5;k++)
{
t=sum[4];
for(int j=3;j>=0;j--)
{sum[j+1]=sum[j];}
sum[0]=t;
gg[k]=MaxSum2(sum,5);
}
cout<<Largest(gg,5)<<endl;
}

结对开发,绝对强大!
两人配合,天下无敌!
凌晨00:08,睡觉去~~~
原文:http://www.cnblogs.com/zhaixing/p/4375100.html