结对成员:郭庆樑,张科
一、题目:返回一个整数数组中最大数组的和。
要求:
1、输入一个整型数组,数组里有正数也有负数;
2、数组中连接的一个或多个整数组成一个子数组,每个子数组都有一个和;
3、求素有子数组的和的最大值。
二、本次实验中,郭庆樑主要负责程序分析,代码编程;我主要负责代码复审和代码测试
三、代码
#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;
cout<<"(第一个数表示元素个数,第二个数表示元素从第几个开始。)"<<endl;
return 0;
}
四、结果截图
五、工作照
六、问题与体会
由于是初次的结对开发,我俩都有些不适应。刚开始我俩的思路不能很好地契合在一起,在课上经过讨论才达成一致,在课后完成了程序。
之前我一直更加重视对代码的编写,这次合作提高了我对代码复审,测试的重视度。