zoukankan      html  css  js  c++  java
  • 结对开发之《返回一个二维整数数组中最大子数组的和2》

    一、题目要求

    题目:返回一个二维整数数组中最大子数组的和。

    要求: 输入一个二维整形数组,数组里有正数也有负数。

                二维数组首尾相接,象个一条首尾相接带子一样。

                数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大

                两人结对完成编程任务。一人主要负责程序分析,代码编程。 一人负责代码复审和代码测试计划。

                发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突(附结对开发的工作照)。(截止到周四4月21日24:00)

    二、设计思路

    本次实验设计思路非常简单,就是融合了之前两次实验的思路,还是用之前二维数组的计算方法,比如一个三行三列的矩阵,让每一列都做一次第一列,然后按照每一次换完之后的矩阵计算它的子矩阵。

    三、代码

    复制代码
    //康娜,2015年4月17日
    #include<iostream>
    #include<time.h>
    using namespace std;
    #define N 3
    void main()
    {
        srand((int)time(0));
        int i,j,a[N][N];
        for(i=0;i<N;i++)
            for(j=0;j<N;j++)
            {
                a[i][j]=-rand()%36+25;
            }
        cout<<"所得随机矩阵如下:"<<endl;
        for(i=0;i<N;i++)
        {
            for(j=0;j<N;j++)
            {
                cout<<a[i][j]<<'	';
            }
            cout<<endl;
        }
        int c=0,b[100],m,sum,sum1;
        for(i=0;i<100;i++)
            b[i]=0;
    
        for(i=0;i<N;i++)
        {  
            for(int f=0;f<N;f++)
            {
                m=f;
                sum=0;
                sum1=0;
                for(j=m;j<N;j++)
                {
                    sum+=a[i][j];
                    b[c]=sum;
                    c++;
    
                    sum1=sum;
                    for(int d=i+1;d<N;d++)
                    {
                        for(int e=f;e<=j;e++)
                        {
                            sum1+=a[d][e];
                        }
                        b[c]=sum1;
                        c++;
                    }
                }
                if(m>N-1)
                {
                    m=0;
                }
            }
        }
        for(i=0;i<c;i++)
            cout<<b[i]<<"   ";
        cout<<endl;
        int max;
        max=b[0];
        for(i=0;i<c;i++)
        {
            if(b[i]>max)
            {
                max=b[i];
            }
        }
        cout<<max;
    
    
    }
    复制代码

    四、运行效果截图

    五、总结

           这次编程的思路和上次一维环形数组是一样的,只不过相当于一维数组的一个扩充。编程的思路很重要,虽然是不同的程序,但是很多思路都是相通的,方法也是类似的。以后在编程过程中,会注重归纳和总结。

  • 相关阅读:
    徐丽君 20191017-1 每周例行报告
    徐丽君 20191010-2 每周例行报告
    徐丽君 20190919-1 每周例行报告
    徐丽君 20190919-4 单元测试结对
    20191128-1 总结
    20191121-1 每周例行报告
    20191114-1 每周例行报告
    20191107-1 每周例行报告
    20191031-1 每周例行报告
    20191024-1 每周例行报告
  • 原文地址:https://www.cnblogs.com/meimiaozi/p/4447731.html
Copyright © 2011-2022 走看看