Предмет: Информатика,
автор: 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
Похожие вопросы
Предмет: Английский язык,
автор: гость118
Предмет: Русский язык,
автор: katyapopova1999
Предмет: Технология,
автор: sascharodina20
Предмет: Математика,
автор: ruslanflibekov
Предмет: Алгебра,
автор: lolikalrogolik12345