类和对象定义数组类求一维组中值素数的元素平均值

img


课上讲的太快了,又难又没思路,刚开始学非常迷茫,请大家帮帮忙,看看思路


#include <iostream>
using namespace std;

class Array {
    int * p, k;
    float *s;
public:
    Array(int*ptr, int n) {
        k = n;
        p = new int[k];//分配空间
        for (int i = 0; i < k; i++) { p[i] = ptr[i]; }//初始化
        s = new float(0);
    }
    int fun(int n);
    void sum();
    void show();
    ~Array() { delete[]p; delete[]s; }
};
int Array::fun(int n) {
    if (n == 0 || n == 1)return 0;
    for (int i = 2; i < n; i++)
        if (n%i == 0)return 0;
    return 1;
}
void Array::sum() {
    int j = 0;
    for (int i = 0; i < k; i++)
        if (fun(p[i])) {
            *s += p[i];
            j++;
        }
    *s /= j;
}
void Array::show() {
    cout << "array's num:" << k << endl;
    cout << "array:" << endl;
    for (int i = 0, j = 1; i < k; i++, j++) {
        cout << p[i] << '\t';
        if (j % 5 == 0)cout << endl;
    }
    cout << endl;
    cout << "sum:" << *s << endl;
}
int main() {
    int a[20] = { 5,2,7,4,8,23,65,1,40 };
    Array arr(a, 9);
    arr.sum();
    arr.show();
    return 0;
}