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

结对开发_求一维数组最大子数组和判断溢出

时间:2015-03-30 22:26:43      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

题目

  求一维数组最大子数组和

  要求:1000个数以上,整数

二.设计思路

  最大子数组很好找到,但是子数组和的溢出问题很难解决。

  经过不断的思考,我得出了结论:

    溢出是程程序设计者设计时的不足所带来的错误。所以设计者要在编码时便高度警惕,预防溢出的发生,这才是最本质的解决问题的方法。就本题而言,我们设置了元素最大个数,以及其它输入要求,尽量避免溢出的发生。1000个数相加可以实现,但非要取1000个最大的数相加,那样的计算没有意义,不会在我们的生活学习中出现,这属于科研问题,交给大神们来解决吧。

程序源代码:

#include <iostream.h>
#include <stdlib.h>
#define MAX_LEN 2000
int main()
{
	int i,j;
    int len,max;   
	int VALUE_MAX=2147483580;
    int sum=0;//求和变量
	do{
		cout<<"请输入数组元素个数(小于2000):";
		cin>>len;
	}while( (len>MAX_LEN) || len<=0);
    int* Array=new int[len];//开辟数组空间
    for(i=0;i<len;i++)
        Array[i]=rand()%1000;
    cout<<endl;
    max=Array[0];
    for( i=0;i<len;i++)
    {
		sum=0;
        for(j=i;j<len;j++)
        {
            sum=sum+Array[j];
            if(sum>max&&sum<VALUE_MAX)   
                max=sum;
            else if(sum>VALUE_MAX)
                break;
        }
	}

	cout<<"最大子数组的和为:"<<max<<endl;

    delete []Array;
    return 0;
}

 程序运行截图:

技术分享

本对照片:

     太菜了,还是低调一点吧。

实验感想:

  技术分享

上图来源与csdn,我还是没看懂。

 

结对开发_求一维数组最大子数组和判断溢出

标签:

原文地址:http://www.cnblogs.com/duang/p/4379103.html

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