• “数组最大值求和”分析报告


    “数组最大值求和”分析报告

     

    一、设计思想

    1.定义一个数组元素个数可变的数组,用宏定义实现(a[n])。

    2.用rand函数产生正负随机数,存入数组中。

    3.定义一个二维数组(b[n][n]),用来依次存放各个子数组的值。

    4.找出二维数组中最大的值,就是最大的子数组的值。

    5.二维数组中的最大值的下标,就分别是最大子数组的起始下标和结束下标,比如b[2][4]是二维数组中最大的值,即最大子数组的下标就是2、3、4。

    二、代码

    #include<iostream>
    #include<time.h>
    using namespace std;
    
    void main()
    {
        int a[10],b[10][10],i,j,s=0,w=0;
    
        srand((int)time(0));
    
        for(i=0;i<10;i++)
            a[i]=-rand()%36+25;
    
        for(i=0;i<10;i++)
            cout<<a[i]<<endl;
    
        for(i=0;i<10;i++)
        {
            w=0;
            for(j=i;j<10;j++)
            {
                w+=a[j];
                b[i][j]=w;
                s++;
            }
        }
    
        int t=0,p1,p2;
    
        for(i=0;i<10;i++)
            for(j=0;j<10;j++)
                if(b[i][j]>t)
                {
                    t=b[i][j];
                    p1=i;
                    p2=j;
                }
    
        if(p1==p2)
        {
                cout<<"最大子数组的值为:"<<t<<endl;
                cout<<"其包括的数组元素下标为:"<<p1<<endl;
        }
        else
        {
            cout<<"最大子数组的值为:"<<t<<endl;
            cout<<"其包括的数组元素下标为:"<<p1<<"~"<<p2<<endl;
        }
    }

     

    三、结果截图

    四、时间日志

     

     

  • 相关阅读:
    难道真的是RedBook错了?
    用一个土办法证明RedBook的错误
    Md5 Loader Demo
    simple shadow mapping
    又遇到让人疑惑的问题
    [洛谷P1037][题解]产生数
    [洛谷P1279][题解]字串距离
    [洛谷P1122][题解]最大子树和
    [洛谷P1144][题解]最短路计数
    Vue 之 Data
  • 原文地址:https://www.cnblogs.com/meimiaozi/p/4359443.html
Copyright © 2020-2023  润新知