######一組序列中,求最大的和序列,並輸出其和序列的末位置
#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;
}
很少用到向量,練習最基本吧。。。。。