######一组序列中,求最大的和序列,并输出其和序列的末位置
#include <iostream>
#include <stdlib.h>
#include<vector>
int main(int argc, char *argv[])
{
int m,n;
int i,j,a,k,p;
int sum1,sum2,sum=0;sum1表前序列的和,SUM表当前项的和
vector<int> s;
cin>>m;///输入几组数
for(i=1;i<=m;i++)
{
cin>>n;每个序列数的个数
for(j=1;j<=n;j++)
{ cin>>a;
s.push_back(a);
}
取得一组序列数
sum2=sum1=sum=0;
for(p=0;p<s.size();p++)
{
sum+=s[p];
if(sum1<=sum) sum1=sum;
else
{ if(sum1!=sum2)
k=p; ///记下最大序列和的最后一位置
sum2=sum1;
}
}
if(sum==sum1) k=p; //当最大和处于最后的情况
cout<<"case"<<i<<" :"<<endl;
cout<<sum1<<" 1 "<<k<<endl;
s.clear();清向量为零
}
system("PAUSE");
return 0;
}
很少用到向量,练习最基本吧。。。。。