#include <iostream> using namespace std; #define num 1024 int arr[num]; int MaxSum(int n, int &Maxi, int &Maxj) { int Sum = 0; int S = 0; int begin = 0; for (int i = 1;i <= n;i++) { if (S > 0) S += arr[i]; else { S = arr[i]; begin = i; } if (S > Sum) { Sum = S; Maxi = begin; Maxj = i; } else continue; } return Sum; } int main() { int n; int Maxi, Maxj; cout<<"输入整数个数:"<<endl; cin>>n; while (true) { Maxi = 0; Maxj = 0; cout<<"输入的整数为:"<<endl; for (int i=1; i<=n; i++) cin>>arr[i]; cout<<"最大子段和为:"<<MaxSum(n, Maxi, Maxj)<<endl; cout<<"和最大子段下标范围: "<<Maxi<<"--"<<Maxj<<endl; break; } return 0; }