一、题目
输出二维环形数组中最大子数组和
二、设计思想
把解决一维环形数组,和普通二维数组的方法结合起来街是解决二维环形数组的方法。
三、源代码
#include<iostream.h>
#include<time.h>
#include<stdlib.h>
int qiumax(int arry[],int max)
{
int i;
long sum;
for(i=0;i<5;i++)
{
for(i=0;i<5;i++)
{
arry[i+5]=arry[i];
}
}
for(int j=0;j<5;j++)
{
sum=0;
for(int k=j;k<5+j;k++)
{
sum=sum+arry[k];
if(sum>max)
{
max=sum;
}
}
}
return max;
}
int main()
{
int qiumax(int arry[10],int max);
int i,j,k;
int arry[5][10]={{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1}};
int arry1[10]={0,0,0,0,0,0,0,0,0,0};
int max=arry[0][0];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
arry[i][j+5]=arry[i][j];
}
}
for(i=0;i<5;i++)
{
for(j=i;j<5;j++)
{
for( k=0;k<5;k++)
{
arry1[k]+=arry[j][k];
}
max=qiumax(arry1,max);
}
for(k=0;k<10;k++)
{
arry1[k]=0;
}
}
cout<<"MAX IS"<<" "<<max<<endl;
return 0;
}
四、结果截图

五 实验感想
这次实验感觉就是前两次的结合嘛,首先遍历所有竖的,将所有的将所有情况求出,让后调用一维环型数组的
方法,求出后比较大小,求出最大的,关键是把以前的综合起来。
原文:http://www.cnblogs.com/shishi1993-/p/4391042.html