首页 > 编程语言 > 详细

结对开发(二维数组)

时间:2015-03-22 13:35:19      阅读:263      评论:0      收藏:0      [点我收藏+]

一 设计思想

    我们设定的是一个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;


}

三 截图

  技术分享

四 实验总结

   我们互相学习,互相讨论,同时也看了一下其他人的代码,借鉴他人的经验,通过交流,我们讨论除了一种方法,先纵后横,也是遍历所有情况,比较大小,本次变成受益匪浅。

结对开发(二维数组)

原文:http://www.cnblogs.com/shishi1993-/p/4357197.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!