• 课堂练习3


    1.设计思想

    (在网上搜索的程序代码和思路,我们对其进行整理得到现在的思路)先宏定义m和n,分别为二维数组的行数和列数,在主函数中定义一个整型的二维数组,二维数组的元素由随机生成函数rand()生成,对于生成的二维数组,我们先计算出第一行中有关第一个元素的所有子数组,然后计算出第二个第三个直到第n个,第二行第三行直到第m行同第一行,把上面计算出来的子数组存放在另一个二维数组里,再求这个二维数组的子数组的最大值(根据列数来求),定义一个变量max(二维数组中最大子数组的和),把max的值赋为0,把从另一个二维数组得到的最大值和max比较,以此类推,最后即可得到最大子数组的和。

    2.源程序

    #include <iostream>
    using namespace std;
    
    #define m 3
    #define n 2
    void main()
    {
        int a[m][n];
        int max;
        int s;
        int count;
        int b[m][m];
      
        cout<<"该二维数组为:"<<endl;
        for(int i=0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
                a[i][j]=rand()%100-50;
                cout<<a[i][j]<<" ";
            }
            cout<<endl;
        }
        for(int i=0;i<m;i++)
        {
            count=0;
            for(int j=0;j<n;j++)
            {
                s=0;
                for(int l=0;l<n-j;l++)
                {
                    s=s+a[i][j+l];
                    b[i][count+l]=s;
                }
                count=count+n-j;
            }
        }
        //求最大数
        max=b[0][0];
        for(int j=0;j<m;j++)
        {
            for(int i=0;i<m;i++)
            {
                s=0;
                for(int r=0;r<m-i;r++)
                {
                    s=s+b[r+i][j];
                    if(max<s)
                        max=s;
                }
            }
        }
        cout<<"最大子矩阵为:"<<max<<endl;
    }

    3.结果截图

    4.总结

    还是找不到很好的思路,找不到一种方法解决问题,思路很重要,要多思考,形成自己的解决问题的方案,两个人的合作有利于更好地理解程序和思路,真的很希望以后可以用自己的方式,自己的思路去解决问题。

    5.工作照

    孟祥娟:主要负责代码复审和代码测试计划;

    陈杰:主要负责程序分析,代码编程。

  • 相关阅读:
    Python(九)之网络编程
    Bat命令
    Python(八)之函数
    RedHat下安装Python开发环境
    Redhat6.5安装DB2 Express-C版本
    Linux下字符集的安装
    Linux命令之stty
    AIX查看CPU、内存等信息
    stopManagedWebLogic.sh强制关闭Managed Server
    Keepalived + Nginx + Tomcat 的高可用负载均衡架构搭建
  • 原文地址:https://www.cnblogs.com/mxj333/p/4403763.html
Copyright © 2020-2023  润新知