首页 > 编程语言 > 详细

求一个整数数组中最大子数组的和

时间:2016-03-26 13:57:35      阅读:163      评论:0      收藏:0      [点我收藏+]

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

思路:让用户随机输入几个整数,首先获得用户输入数组的长度,然后设定一个为0的初值,以进行比较数字的正负,再利用动态数组,求最大子数组之和,对每个数有两种情况,这个数前边的子数组和为负数,或者为正数,然后,如果是正数,判断加上自身是否更大,最后进行递归运算。

程序代码

#include<iostream>
using namespace std;
int main()
{
    int Array[100];
    int i,length=0;
    int sumOfArray;
    int sum=0;       //sum初始化
    cout<<"请输入一组整数:";
    for(length=0;;)  //获得数组的长度
    {
        cin>>Array[length];
        length++;
        if(getchar()==\n)
        {
            break;
        }
    }
    cout<<"这个数组的长度为:"<<length<<endl;
    sumOfArray=Array[0];
    for(i=1;i<length;i++) //动态数组 
    {
        sum=max(sum,sumOfArray);
        sumOfArray=max(sumOfArray+Array[i],Array[i]);
    }
    sumOfArray=max(sum,sumOfArray);//确定子数组的最大值
    cout<<"这个整数组的子数组之和的最大值为:"<<sumOfArray<<endl;
    return 0;
} 

结果测试截图:

技术分享技术分享

开发流程:

日期和任务
听课 看书 网上查资料 编程 日总计
周一 2     1 3
周二         0
周三   2     2
周四 2   1 2 5
周五     1 3 4
周六   1 2 1 5
周日         0
总计 4 3 4 7 18

求一个整数数组中最大子数组的和

原文:http://www.cnblogs.com/apan008/p/5322730.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!