Вопрос задан 15.11.2023 в 09:33. Предмет Информатика. Спрашивает Серов Димас.

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

справа элементы значениями -1. C++
0 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

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Чтобы выполнить задание и сжать массив, удалив все элементы, равные 0, и заполнить освободившиеся справа элементы значениями -1, можно использовать следующий алгоритм:

1. Создать новый массив с тем же размером, что и исходный массив. 2. Создать переменную, которая будет отвечать за индекс нового массива (начальное значение - 0). 3. Пройти по каждому элементу исходного массива: - Если элемент не равен 0, поместить его в новый массив по текущему индексу и увеличить значение индекса на 1. 4. Заполнить оставшиеся элементы нового массива значениями -1. 5. Заменить исходный массив на новый массив.

Пример кода на языке Python:

```python def compress_array(arr): new_arr = [0] * len(arr) index = 0

for element in arr: if element != 0: new_arr[index] = element index += 1

for i in range(index, len(new_arr)): new_arr[i] = -1

return new_arr

# Пример использования array = [1, 0, 3, 0, 5, 0, 7] compressed_array = compress_array(array) print(compressed_array) ```

В данном примере исходный массив `[1, 0, 3, 0, 5, 0, 7]` будет сжат в `[1, 3, 5, 7, -1, -1, -1]`. Элементы, равные 0, удалены, а освободившиеся элементы в конце массива заполнены значением -1.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос