错误已表明位置,初学求轻喷...
做一个计步软件求每周的步数最大值最小值以及平均值,要求输入多组数据并在最开始输入数据的组数T
#include
#include
using namespace std;
class Step
{
public:
Step(int a[7]);
Step(const Step &c);
~Step(){}
int getMax();
int getMin();
float getAverage();
void showAnswer();
private:
static float Averstep;
int Maxstep,Minstep;
int step[7];
};
Step::Step(int a[7])
{
for(int i=0;i {
step[i]=a[i];
}
}
Step::Step(const Step &c)
{
for(int i=0;i {
step[i]=c.step[i];
}
}
float Step::getAverage()
{
for(int i=0;i Averstep=(Averstep+step[i])/7;
return Averstep;
}
int Step::getMax()
{
int Maxstep=step[0];
for (int i=1;i {
if (step[i]>Maxstep) {
Maxstep=step[i];
}
}
return Maxstep;
}
int Step::getMin()
{
int Minstep=step[0];
for (int i=1;i<=6;i++)
if (step[i] Minstep=step[i];
}
return Minstep;
}
void Step::showAnswer()
{
cout }
float Step::Averstep=0.0;
int main()
{
int T;
int step[7];
cin>>T;
while(cin>>step[0]>>step[1]>>step[2]>>step[3]>>step[4]>>step[5]>>step[6])
{
Step x(step[7]); *****(错误位置)*****
x.showAnswer();
}
return 0;
}
step【7】是一个int数,而你的step是0-6的,它越界了
应该传过去一个数组,所以用
Step x(step);
代码里for循环都不完整 我这也调试不了
//*************************
1.实例化的时候只调用了构造函数,没有用他的方法,也就是没有计算最大最小值(可以在计算最大最小的函数里打个断点),我在构造函数里执行了计算的函数所以输出是正常的
2.输入的数据组数没用,这个简单,自己改吧
#include "stdio.h"
#include "iostream"
using namespace std;
class Step
{
public:
Step(int a[7]);
Step(const Step &c);
~Step(){}
int getMax();
int getMin();
float getAverage();
void showAnswer();
private:
static float Averstep;
int Maxstep, Minstep;
int step[7];
};
Step::Step(int a[7])
{
for (int i = 0; i<7; i++)
{
step[i] = a[i];
}
Maxstep = getMax();
Minstep = getMin();
Averstep = getAverage();
}
Step::Step(const Step &c)
{
for (int i = 0; i<7; i++)
{
step[i] = c.step[i];
}
}
float Step::getAverage()
{
for (int i = 0; i<7; i++)
Averstep = (Averstep + step[i]) / 7;
return Averstep;
}
int Step::getMax()
{
int Maxstep = step[0];
for (int i = 0; i<7; i++)
{
if (step[i]>Maxstep)
{
Maxstep = step[i];
}
}
return Maxstep;
}
int Step::getMin()
{
int Minstep = step[0];
for (int i = 1; i <= 6; i++)
{
if (step[i] < Minstep)
Minstep = step[i];
}
return Minstep;
}
void Step::showAnswer()
{
cout << "max" << Maxstep << endl;
cout << "min" << Minstep << endl;
cout << "ave" << Averstep << endl;
}
float Step::Averstep = 0.0;
int main()
{
int T;
int step[7];
cin >> T;
while (cin >> step[0] >> step[1] >> step[2] >> step[3] >> step[4] >> step[5] >> step[6])
{
Step x(step);
x.showAnswer();
}
system("pause");
return 0;
}