结对开发(二维数组)

一 设计思想

    我们设定的是一个3*3的二维数组,首先将第一纵列所有组合相加的情况找出,然后将所有情况看成一维数组,按一维数组的方法求出最大值,将所有最大值放入一个数组里,最后在求出最大的,

二 源程序

    

#include<iostream.h>
int Largest(int list[],int length)
{
    int i,max=list[0];
    for(i=0;i<(length);i++)
    {
        if(list[i]>max)
        {
            max=list[i];
        }
    }
    return max;
}
int paixv(int list[])
{

    int sum=0;
    int max=list[0];

    for(int i=0;i<3;i++)
        {
             if(sum<=0)
             {
                 sum=list[i];

             }
             else
             {
                 sum=sum+list[i];

             }
             if(sum>max)
             {
                 max=sum;
             }
        }
        return max;
}
int main()
{
    int h=0;
    int a[3][3];
    int b[100];
    int c[100];
    int d[100];
    int e[100];
    cout<<"please input 9 numbers:";
    do
    {
        for(int l=0;l<3;l++)
        {
            cin>>a[h][l];
        }
        h++;
    }
    while(h<3);
    b[0]=a[0][0]+a[1][0];
    c[0]=a[0][0]+a[1][0]+a[2][0];
    d[0]=a[1][0]+a[2][0];
    b[1]=a[0][1]+a[1][1];
    c[1]=a[0][1]+a[1][1]+a[2][1];
    d[1]=a[1][1]+a[2][1];
    b[2]=a[0][2]+a[1][2];
    c[2]=a[0][2]+a[1][2]+a[2][2];
    d[2]=a[1][2]+a[2][2];
    e[0]=paixv(b);
    e[1]=paixv(c);
    e[2]=paixv(d);
    int sum=0;
    int max=a[0][0];
    for(int i=0;i<3;i++)
        {
             if(sum<=0)
             {
                 sum=a[0][i];

             }
             else
             {
                 sum=sum+a[0][i];

             }
             if(sum>max)
             {
                 max=sum;
             }
        }
        e[3]=max;
        int sum1=0;
        int max1=a[1][0];
        for(int i=0;i<3;i++)
        {
             if(sum1<=0)
             {
                 sum1=a[1][i];

             }
             else
             {
                 sum1=sum1+a[1][i];

             }
             if(sum1>max1)
             {
                 max1=sum1;
             }
        }
        e[4]=max1;
        int sum2=0;
        int max2=a[2][0];
        for(int i=0;i<3;i++)
        {
             if(sum2<=0)
             {
                 sum2=a[2][i];

             }
             else
             {
                 sum2=sum2+a[2][i];

             }
             if(sum2>max2)
             {
                 max2=sum2;
             }
        }
        e[5]=max2;
        int max3=Largest(e,6);
        cout<<"最大矩阵的和为:"<<max3;


}

三 截图

  

四 实验总结

      通过我们两个人的讨论,以及上课同学们的提示,我们想出了一种方法,也是通过遍历的方法,并且合并成一个数组,

然后由海超进行操作,我在旁边看着,因为他的编程水平比较高,最后一起测试了一下,感觉编程最重要的还是idea,有

了想法,实现不难,需要多练

原文地址:https://www.cnblogs.com/shishi1993-/p/4357197.html