Предмет: Информатика, автор: solodovnikmaks80

Задание 1. Сжать (сдвинуть элементы) массив, удалив из
него все 0, и заполнить освободившиеся справа элементы
значениями -1.
C++

Ответы

Автор ответа: Аноним
0

#include <iostream>

#include <vector>

#include <set>

using namespace std;

void shrink(int* arr, int size) {

int* t = new int[size];

int j = 0;

for(int i = 0; i<size; ++i) {

 if(arr[i] != 0) {

  t[j] = arr[i];

  ++j;

 }

}

while(j < size) {

 t[j] = -1;

 ++j;

}

for(int i = 0; i<size; ++i) {

 arr[i] = t[i];

}

delete[] t;

}

int main() {

int size;

cin >> size;

int* arr = new int[size];

for(int i = 0; i<size; ++i) {

 cin >> arr[i];

}

shrink(arr, size);

for(int i = 0; i<size; ++i) {

 cout << arr[i] << " ";

}

}

Ввод:

5

1 0 0 0 3

Вывод:

1 3 -1 -1 -1

Похожие вопросы
Предмет: Русский язык, автор: katyapopova1999
Предмет: Алгебра, автор: lolikalrogolik12345