小明最近在学习玩股票,现在请设计一个程序帮他查找当天时段中最大的收益值和投资时间段。创建一个股票类,输入当天7个时间段的涨跌数据(INT 型),并在类中设计一个方法,计算出最大的收益值和投资时间段。(如果计算出的收益值小于或者等于0,则输出“won't buy!”.当输入 0 0 0 0 0 0 0 时输入结束,有多个时间段相同时输出第一个。)
Sample Input
-1 0 -1 -2 -3 -4 -5
1 2 3 4 5 6 7
1 2 3 -10 3 2 1
-2 -5 3 -4 5 7 -1
-1 0 1 -1 -1 -1 -1
0 0 0 0 0 0 0
Sample Output
wont't buy!
28 1 7
6 1 3
12 5 6
1 3 3
*********************************题目**********************************
#include<iostream>
using namespace std;
class data
{
int a[8];
public:
int k,j,maxnum;
void max();
void input();
bool judge();
};
void data::max()
{
int i,sum,nowj,f;
f=nowj=maxnum=sum=i=j=0;
for(i=0;i<7;i++)
{
sum+=a[i];
if(sum<0)
{
sum=0;
nowj=i+1;
}
else if(sum>maxnum)
{
k=i;
j=nowj;
maxnum=sum;
f=1;
}
else if(sum==0&&f==0)
{
nowj+=1;
j=nowj;
}
}
if(j>=7) j=k;
}
void data::input()
{
int i;
for(i=0;i<7;i++)
{
cin>>a[i];
}
}
bool data::judge()
{
int i;
bool f=0;
for(i=0;i<7;i++)
{
if(a[i]!=0)
{
f=1;
break;
}
else ;
}
return f;
}
int main()
{
int max;
data p;
p.input();
for(;p.judge()==1;)
{
p.max();
if(p.maxnum>0) cout<<p.maxnum<<" "<<(p.j)+1<<" "<<(p.k)+1<<endl;
else cout<<"won't buy!"<<endl;
p.input();
}
return 0;
}
********************代码****************************************
!!!(#‵′)这次太坑爹了!!!!!!题目的输出是won't而例题给的是wont't。。。直接从例题复制的输出结果一直不能通过,以后要认真看题目!┑( ̄Д  ̄)┍