课后习题 2-7 数组非零元素前移

Posted slowisfast

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了课后习题 2-7 数组非零元素前移相关的知识,希望对你有一定的参考价值。

题目:

假定数组A[arraySize]中有多个零元素, 试写出一个函数, 将A 中所有的非零元素依次移到数组A的前端A[i]。

Array.h

#pragma once
#include<iostream>
using namespace  std;

class Array {
    int* data;
    int num;
public:
    Array(int n) {
        num = n;
        data = new int[num];
    }
    void creat(int* arr) {
        for (int i = 0; i < num; i++) {
            data[i] = arr[i];
        }
    }
    void show() {
        for (int i = 0; i < num; i++) {
            cout << data[i] << " ";
        }
        cout << endl;
    }
    void move() {
        int p = 0;
        int temp;
        for (int i = 0; i < num; i++) {
            if (data[i] != 0) {
                temp = data[i];
                data[i] = data[p];
                data[p] = temp;
                p++;
            }
        }
    }
};

main.cpp

#include"Array.h"

int main() {
    Array L(11);
    int arr[] = { 0,8,3,0,4,0,5,4,0,9,0 };
    L.creat(arr);
    L.show();
    L.move();
    L.show();
    return 0;
}

 

以上是关于课后习题 2-7 数组非零元素前移的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 283. 移动零

课后习题答案 严蔚敏 等 编著

Java语言程序设计(第3版)沈泽刚主编第5章课后习题答案

java删除数组中的一个元素,其余元素前移,最后一个元素也要前移,不能

课后习题 2-9 前后两部分数组位置互换

习题集一