软件工程(2019)第三次作业程序

#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;
}

  

猜你喜欢

转载自www.cnblogs.com/19940630naxubo/p/10746301.html
今日推荐