c++定义一个数列计算类,要求:1包含成员变量:整数数列,数列长度;包含方法:求累加和、平均值、方差、数列升序
#include <iostream>
#include <algorithm>
using namespace std;
class Array
{
public:
int *array;
int size;
public:
Array(int *data, int sz)
: size(sz)
{
array = new int[sz];
memcpy(array, data, sizeof(int) * sz);
}
~Array()
{
delete[] array;
}
int sum()
{
int res = 0;
for (int i = 0; i < size; i++)
res += array[i];
return res;
}
float average()
{
return sum() * 1.0 / size;
}
float variance()
{
float res = 0;
float ave = average();
for (int i = 0; i < size; i++)
res += (array[i] - ave) * (array[i] - ave);
return res / size;
}
void ascending_order()
{
sort(array, array + size);
}
friend ostream &operator<<(ostream &os, const Array &a)
{
for (int i = 0; i < a.size; i++)
os << a.array[i] << " ";
os << endl;
return os;
}
};
int main()
{
int a[5] = {5, 4, 3, 2, 1};
Array b(a, 5);
cout << "sum = " << b.sum() << endl; // 15
cout << "average = " << b.average() << endl; // 3
cout << "variance = " << b.variance() << endl; // 2
cout << b; // 5 4 3 2 1
b.ascending_order();
cout << b; // 1 2 3 4 5
}