类实现一维数组派生

来源:互联网 发布:python读取json文件 编辑:程序博客网 时间:2024/05/17 22:19

思想是将首尾元素特殊化。

/*由一个已知一维数组派生出另一个一维数组的派生规则如下:新数组的每一元素等于原始数组的对应元素及其相邻两元素的平均值。其中第 0 个元素的左邻元素约定为后一个元素,后一个元素的右邻 元素约定为第 0 个元素。假设原始数组为 a[10],则 b[0]=(a[9]+a[0]+a[1])/3,b[1]=(a[0]+a[1]+a[2])/3,b[2]=(a[1]+a[2]+a[3])/3,…,b[9]=(a[8]+a[9]+a[0])/3。试建立一个实现此功能的类 ARRAY。具体要求如 下: (1)私有数据成员  float a[10],b[10] ;a 存放原始数组,b 存放派生数组。(2)有成员函数  ARRAY(float t[10]):构造函数,初始化成员数组 a。 void process():由数组 a 根据上述派生规则,用循环语句计算数组 b 的各元素。 void print():屏幕显示数组 a 和 b。 (3)在主程序中对该类进行测试。使用测试数据{0,3,6,9,12,15,18,21,24,27}。  */#include<iostream>using namespace std;class arr {private:    float a[10], b[10];public:    arr(float[]);    void process();    void print();};arr::arr(float t[10]){    for (int i = 0; i < 10; i++)    {        a[i] = t[i];    }}void arr::process(){    for (int i = 0; i < 10; i++)    {        if (i == 0)            b[i] = (a[9] + a[0] + a[1]) / 3;        else if (i == 9)            b[i] = (a[8] + a[9] + a[0]) / 3;        else            b[i] = (a[i - 1] + a[i] + a[i + 1]) / 3;    }}void arr::print(){    for (int i = 1; i <=10; i++)    {        cout << b[i-1] << '\t';        if (i % 5 == 0)            cout << endl;    }}int main(){    float m[10] = {0,3,6,9,12,15,18,21,24,27};    arr arr1(m);    arr1.process();    arr1.print();    system("pause");    return 0;}