- #include<iostream.h>
- #include<stdlib.h>
- #define AMOUNT 1500
- int main()
- {
- long int arr[AMOUNT];
- long int arrCopy[AMOUNT];
- long int max[AMOUNT];
- int i,a;
- int b;
- int start,rear;
- int mount=AMOUNT;
- for(i=0;i<mount;i++)
- {
- try
- {
- b=rand()%4;
- if(b==0)
- {
- arr[i]=rand();
- arrCopy[i]=arr[i];
- max[i]=arr[i];
- }
- else
- {
- arr[i]=-rand();
- arrCopy[i]=arr[i];
- max[i]=arr[i];
- }
- }
- catch(long int e)
- {
- cout<<"Long Inter=ger Exception!"<<endl;
- }
- }
- cout<<"Array :"<<endl;
- for(i=0;i<mount;i++)
- {
- cout<<arr[i]<<" ";
- if((i+1)%10==0)
- {
- cout<<endl;
- }
- }
- for(a=0;a<mount-1;a++)
- {
- for(i=a+1;i<mount;i++)
- {
- try
- {
- arr[a]=arr[a]+arr[i];
- if(max[a]<arr[a])
- {
- max[a]=arr[a];
- rear=i+1;
- }
- }
- catch(long int e)
- {
- cout<<"Long Inter=ger Exception!"<<endl;
- }
- }
- }
- for(i=0;i<mount;i++)
- {
- if(max[0]<max[i])
- {
- max[0]=max[i];
- start=i+1;
- }
- }
- cout<<endl;
- cout<<"从第"<<start<<"个数"<<arrCopy[start-1]<<"开始"<<endl;
- cout<<"到第"<<rear<<"个数"<<arrCopy[rear-1]<<"结束"<<endl;
- cout<<"子数组和的最大值为:"<<max[0]<<endl;
- return 0;
- }
来源: http://www.bubuko.com/infodetail-2806863.html