#include<iostream>
using namespace std;
#define N 1000
int main()
{
    int i,j;
    int num,value,max=0;
    int val[N];
    int Array[N];
    int firstNum=0,lastNum=0;
    cout<<"输入数的个数:";
    cin>>num;
    for(i=0;i<num;i++)
    {
        cin>>val[i];
    }
    value=0;
    for(i=0;i<num;i++)
    {
        value=value+val[i];
        if(value>max)
        {
            max=value;
            lastNum=i;
        }
        if(value<0)
        {
            value=0;
            firstNum=i+1;
        }
    }
    if(max==0)
    {
       max=val[0];
       firstNum=0;
       lastNum=0;
       for(j=0;j<num;j++)
       {
           if(max<val[j])
           {
               max=val[j];
               firstNum=j;
               lastNum=j;
           }
       }
    }
    cout<<"最大子数组是:";
    for(i=firstNum;i<=lastNum;i++)
    {
        cout<<val[i]<<" ";
    }
    cout<<endl;
    cout<<"最大子数组的和为:";
    cout<<max<<endl;
}

写代码:侯志龙 审核测试:李杰

设计思想:首先确定如何用代码实现对数组的遍历,如何进行循环,然后需要考虑如何筛选出结果最大的数组,最后把筛选出的数组显示出来。

总结:本项目看上去不是太复杂,但是非常讲究算法,两个人结对开发,一起讨论,一起想解决方案,一起网上查找算法,更加锻炼了结对开发的能力,

在这过程中虽然有很多困难,但在我们两个合作下还是解决啦,但还有很多不足,希望可以更好。