题目:返回一个整数数组中最大子数组的和。
发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突(附结对开发的工作照)。
结对成员:郭庆樑,张科
一、解决思路
首先,我们进行明确的分工,由我负责程序分析,代码编程,张科同学负责代码复审和代码测试。
然后,程序解决思路是,先比较数组中单个元素的最大值,之后,再比较相邻两个数相加的最大值,再比较三个数相加,以此类推。
最后,比较各个情况最大值,得出最终结果。
二、源代码
#include<iostream.h>
int main()
{
int a[10];
int max[10];
int Max;
int i;
int j;
int b[10]={0};
cout<<"请输入数组元素:(可为正数,可为负数)"<<endl;
for(i=0;i<10;i++)
cin>>a[i];
max[0]=a[0];
max[1]=a[0]+a[1];
max[2]=a[0]+a[1]+a[2];
max[3]=a[0]+a[1]+a[2]+a[3];
max[4]=a[0]+a[1]+a[2]+a[3]+a[4];
max[5]=a[0]+a[1]+a[2]+a[3]+a[4]+a[5];
max[6]=a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6];
max[7]=a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7];
max[8]=a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8];
max[9]=a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9];
for(i=0;i<9;i+=2)
{
if(max[0]<a[i+1])
{
max[0]=a[i+1];
b[0]=i+2;
}
}
for(i=0;i<8;i++)
{
if(max[1]<(a[i+1]+a[i+2]))
{
max[1]=a[i+1]+a[i+2];
b[1]=i+2;
}
}
for(i=0;i<7;i++)
{
if(max[2]<(a[i+1]+a[i+2]+a[i+3]))
{
max[2]=a[i+1]+a[i+2]+a[i+3];
b[2]=i+2;
}
}
for(i=0;i<6;i++)
{
if(max[3]<(a[i+1]+a[i+2]+a[i+3]+a[i+4]))
{
max[3]=a[i+1]+a[i+2]+a[i+3]+a[i+4];
b[3]=i+2;
}
}
for(i=0;i<5;i++)
{
if(max[4]<(a[i+1]+a[i+2]+a[i+3]+a[i+4]+a[i+5]))
{
max[4]=a[i+1]+a[i+2]+a[i+3]+a[i+4]+a[i+5];
b[4]=i+2;
}
}
for(i=0;i<4;i++)
{
if(max[5]<(a[i+1]+a[i+2]+a[i+3]+a[i+4]+a[i+5]+a[i+6]))
{
max[5]=a[i+1]+a[i+2]+a[i+3]+a[i+4]+a[i+5]+a[i+6];
b[5]=i+2;
}
}
for(i=0;i<3;i++)
{
if(max[6]<(a[i+1]+a[i+2]+a[i+3]+a[i+4]+a[i+5]+a[i+6]+a[i+7]))
{
max[6]=a[i+1]+a[i+2]+a[i+3]+a[i+4]+a[i+5]+a[i+6]+a[i+7];
b[6]=i+2;
}
}
for(i=0;i<2;i++)
{
if(max[7]<(a[i+1]+a[i+2]+a[i+3]+a[i+4]+a[i+5]+a[i+6]+a[i+7]+a[i+8]))
{
max[7]=a[i+1]+a[i+2]+a[i+3]+a[i+4]+a[i+5]+a[i+6]+a[i+7]+a[i+8];
b[7]=i+2;
}
}
for(i=0;i<1;i++)
{
if(max[8]<(a[i+1]+a[i+2]+a[i+3]+a[i+4]+a[i+5]+a[i+6]+a[i+7]+a[i+8]+a[i+9]))
{
max[8]=a[i+1]+a[i+2]+a[i+3]+a[i+4]+a[i+5]+a[i+6]+a[i+7]+a[i+8]+a[i+9];
b[8]=i+2;
}
}
Max=max[0];
for(i=1;i<10;i++)
{
if(Max<max[i])
{
Max=max[i];
j=i;
}
}
cout<<"最大值为:"<<Max<<endl;
if(j==9)
cout<<"组成元素位置:"<<j+1<<endl;
else
cout<<"组成元素位置:"<<j+1<<" "<<b[j]<<endl;
return 0;
}
三、运行结果
四、合作开发体会
首次结对开发,使我非常不适应,但渐渐地就融入了我们的团队。我做主要思路设计,他负责给我补充,来弥补我的不足,使我减少了检查错误代码的时间。
遇到的矛盾:代码与测试分配不均,一人提出的想法,另一人难以实现,需要时间来达成共识。
五、工作照