码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-04-01 14:46:24      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

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

 

一、设计思想

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

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

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

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

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

 

二、开发过程(结组开发)

       我主要负责程序分析,代码编程,之前的程序能够处理的元素个数最多是五百个,离一千还差一半,如果按一千运行则程序会报错。我主要分析了一下两个方面:

       1.程序结果超出int的范围因此报错

       2.和二维数组的元素个数有关系

       针对第一个方面,我让随机数在一个固定的小范围中产生,结果还是报错,因此不是第一个问题。针对第二个问题,我把二维数组换成了一维数组,让这个一维数组依次存放每个子数组的和,后运行成功。因此应该是二维数组这方面出了问题。

 

三、程序代码

#include<iostream>
#include<time.h>
#define n 127293
using namespace std;

void main()
{
    int a[n],i,w=0,b[n];


    srand((int)time(0));

    for(i=0;i<n;i++)
        a[i]=-rand()%36+25;

    for(i=0;i<n;i++)
        cout<<a[i]<<endl;

    for(i=0;i<n;i++)
    {
        w+=a[i];
        b[i]=w;
    }

    int t=b[0];

    for(i=0;i<n;i++)
    {
        if(b[i]>t)
            t=b[i];
    }

    
            cout<<"最大子数组的值为:"<<t<<endl;
            
}

 

四、结果截图

技术分享技术分享

五、总结

       当程序出现问题的时候一定要做好分析,有可能是哪方面出了问题,列一个可能出现问题的表出来。然后再针对每次的问题进行分析,分析如果真的是这方面出了问题,该怎么确定以及确定后该如何解决。 这次是第一次结组做程序,两个人想的确实比一个人想的要全面。分工明确也非常重要,一个人负责程序的编写,一个人负责代码的测试。在以后的编写程序的过程中,会注重两个人的交流和配合。

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

标签:

原文地址:http://www.cnblogs.com/meimiaozi/p/4383584.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!