最大子数组

#include<iostream> 
#include<iostream> 
#include<time.h> 
using namespace std; 
#define NUM 1000 
int DTGH_Sum(int a[],int n) 
{ 
    int sum = 0;
    int *b = (int *) malloc(n * sizeof(int));  
    b[0] = a[0]; 
    for(int i = 1; i < n; i++) 
    { 
        if(b[i-1] > 0) 
            b[i] = b[i - 1] + a[i]; 
        else 
            b[i] = a[i]; 
    } 
    for(int j = 0; j < n; j++) 
    { 
        if(b[j] > sum) 
            sum = b[j]; 
    } 
    delete []b;  
    return sum; 
} 
int main() 
{ 
    int length=0; 
    while (length==NULL||length == 0)
    { 
        cout<<"请输入数组长度:"; 
        cin>>length; 
} 
    int a[NUM]; 
    cout<<"输入数组元素:"<<endl; 
    for(int i=0;i<=(length-1);i++) 
    { 
        cin>>a[i]; 
} 
    cout<<"最大子段和:";
    cout<<DTGH_Sum(a,length)<<endl; 
    return 0; 

 

posted on 2018-10-13 16:24  争当博主  阅读(108)  评论(0编辑  收藏  举报

导航