
课上讲的太快了,又难又没思路,刚开始学非常迷茫,请大家帮帮忙,看看思路
#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;
}