Задание 1. Сжать (сдвинуть элементы) массив, удалив из него все 0, и заполнить освободившиеся справа элементы значениями -1. C++
Ответы
Відповідь:
Вот пример программы на C++, которая сжимает массив, удаляя из него все 0 и заполняя освободившиеся справа элементы значениями -1:
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {0, 1, 0, 3, 0, 5, 6, 0, 0, 9, 0};
// удаление всех 0 из массива
for (auto it = nums.begin(); it != nums.end();) {
if (*it == 0) {
it = nums.erase(it);
} else {
++it;
}
}
// заполнение освободившихся справа элементов значениями -1
while (nums.size() < 11) {
nums.push_back(-1);
}
// вывод результата
for (int num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
В этом примере мы используем вектор nums, который содержит исходный массив. Затем мы используем цикл for и метод erase вектора, чтобы удалить все 0 из массива.
Далее мы используем цикл while, чтобы заполнить все освободившиеся справа элементы значениями -1. В этом примере мы знаем, что исходный массив содержал 11 элементов, поэтому мы используем цикл while до тех пор, пока размер массива nums не станет равным 11.
Наконец, мы выводим содержимое массива nums на экран.
Если нужно применить этот код к другому массиву, то следует заменить исходные значения вектора nums на нужные значения.
Пояснення: