#include #include using namespace std; class ARR { private: int n; // 数组实际元素个数 int a[100]; // 存放原始数组及结果数组 public: // 构造函数,用size初始化n,用x初始化a数组 ARR(int x[], int size) : n(size) { for (int i = 0; i < size; ++i) { a[i] = x[i]; } } // 完成数组a中相同元素的删除工作 void delsame() { if (n == 0) return; int j = 0; // 新数组的索引 for (int i = 1; i < n; ++i) { if (a[i] != a[j]) { a[++j] = a[i]; } } n = j + 1; // 更新数组的实际元素个数 } // 将结果数组以每行10个数的形式输出到屏幕上 void show() const { for (int i = 0; i < n; ++i) { cout << setw(5) << a[i]; if ((i + 1) % 10 == 0) { cout << endl; } } if (n % 10 != 0) { cout << endl; } } }; int main() { int b[] = {1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 8, 9, 10, 10}; // 定义数组 int n = sizeof(b) / sizeof(int); // 计算b数组的元素长度 ARR v(b, n); // 定义类的对象并用数组b和数据n初始化对象的成员 cout << "删除前:"; v.show(); // 输出对象的数组成员中的数据(还未做删除操作, 输出的是初始化后的数据) cout << endl; v.delsame(); // 对对象进行操作, 即将对象的数组成员中的相同的元素删除 cout << "删除后:"; v.show(); // 删除操作后输出对象的数组成员中的数据 cout << endl; return 0; }