• 结对开发(二维数组)


    一 设计思想

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

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

  • 相关阅读:
    561. Array Partition I
    448. Find All Numbers Disappeared in an Array
    136. Single Number
    485. Max Consecutive Ones
    463. Island Perimeter
    496. Next Greater Element I
    344. Reverse String
    【.net项目中。。】.net一般处理程序使用方法
    【ExtAspNet学习笔记】ExtAspNet控件库中常见问题
    用VS2010创建三层架构开发模式及三层架构的研究
  • 原文地址:https://www.cnblogs.com/shishi1993-/p/4357197.html
Copyright © 2020-2023  润新知