题如下:
在这里只使用了10个数字,来计算从第一个元素开始,累和的最大值;
C++代码如下(解释在代码里,就不过多阐述了):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| #include<iostream> using namespace std;
class Max { private: int a[10]; int highNum; int currentMax; int latterMax; public: void setNum(); void findHighNum(); void getlatterMax(); };
void Max::setNum() { a[0]=3; a[1]=7; a[2]=-1; a[3]=3; a[4]=5; a[5]=-7; a[6]=8; a[7]=4; a[8]=-5; a[9]=1; } void Max::findHighNum() { int i=0; currentMax=0;
while(a[i]>=0){ currentMax+=a[i]; i++; } highNum=i-1; } void Max::getlatterMax() { int temp=0; int max=0; for(int i=highNum+1;i<10;i++) { temp+=a[i]; if(temp>max) { max=temp; } } latterMax=max; cout<<"最大值为:"<<latterMax+currentMax<<endl; cout<<"结束"; }
int main(){ Max max; max.setNum(); max.findHighNum(); max.getlatterMax(); }
|
如有问题,欢迎指出,谢谢。
2017.10.12
Tony-Chen
人不逼自己一把,永远不知道自己有多优秀!!