1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #include <iostream>
- #include <iomanip>
- 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;
- }
|