作者:小布丁她Daddy | 来源:互联网 | 2023-05-19 07:51
《团队开发任务四之对二维环形数组的求解》设计思想:通过借鉴一维环形数组的思想与二维数组的实现,二者思
《团队开发任务四之对二维环形数组的求解》
设计思想: 通过借鉴一维环形数组的思想与二维数组的实现,二者思想相融合即可。
源代码:
//求二维环形数组的最大子数组之和
//李敏,Apr 18th,2015
#include
#include
using namespace std;
void main()
{
int m,n,a[100][100],k,t,c,i,j,z,b,d;
int maxsum,sum[100],max=0;
cout<<"请输入矩阵的行数和列数:"<<endl;
cin>>m>>n;
cout<<"输入数组范围,第一个数作为上限,第二个数作为下限:"<<endl;
cin>>b>>d;
srand( (unsigned)time( NULL ) );
cout<<"产生的环形矩阵为:"<<endl;
for(i=0;i)
{
for(j=0;j<2*n;j++)
{
a[i][j]=b+rand()%(d-b+1);
if(j<n)
{
cout<'\t'<<'\t';
}
else
{
a[i][j]=a[i][j-n];
cout<'\t';
}
}
cout<<endl;
}
for(k=0;k)
{
//初始化一个m*n型的二维数组,以作为储备每一个细化的子矩阵之和
for(c=0;c)
{sum[c]=0;}
//求此矩阵划分而得的每一个子矩阵之和
for(j=k;j)
{
for(i=0;i)
{
sum[i]+=a[i][j];
}
//依次比较所得到的每个子矩阵之和取最大子矩阵之和
for(t=0;t)
{
maxsum=0;
for(z=t;z)
{
maxsum+=sum[z];
if(maxsum>max)
max=maxsum;
}
}
}
}
cout<<"最大子矩阵之和为:"<<max;
}
实验结果截图:
编程总结:每一次结对开发都会有不同的收获,就这次实现二维环形数组而言,完全是站在前两次的基础上进行的,这就告诉我们无论哪次要进行开发,都得把这次的经验给积累下来,只有一步步的从小积累,积少成多,慢慢的才能养成开发项目的好习惯,才能很好的完成眼下的程序开发工作,当然,和队友的相互协作也是必不可少的,从这几次开发以来,我觉得我和我的队友已逐渐的慢慢走向和谐的步伐了,慢慢的形成了解决问题的思维方式,解决形式;总而言之,只要有共同的目标,坚不可摧的意志,积极向上的精神,善于总结,善于思考的行为模式,那么无论是遇到了多大的困难,一定是能够战胜的!
团队合作人:李敏 刘子晗
工作照: