Вперед
Зміст
Задачі на вставлення декількох елементів з використанням циклу та функції insert
Приклад
Використовуючи функції написати таку програму:
- Ввести з клавіатури n - кількість елементів вектору, а також значення змінних a та b.
- За допомогою функції RandVect заповнити вектор.
- За допомогою функції PrintVect вивести вектор на екран.
- За допомогою функції insert вставити число 100 перед кожним від’ємним елементом.
- За допомогою функції PrintVect вивести змінений вектор на екран.
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>
using namespace std;
// Прототипи функцій
void RandVect(vector<int>& v, int n, int a, int b);
void PrintVect(const vector<int>& v);
int main() {
// Ініціалізація генератора випадкових чисел
srand(time(0));
// Введення параметрів
int a, b, n;
cout << "Введіть мінімальне значення (a): ";
cin >> a;
cout << "Введіть максимальне значення (b): ";
cin >> b;
cout << "Введіть кількість елементів (n): ";
cin >> n;
// Створення та заповнення вектора
vector<int> vect;
RandVect(vect, n, a, b);
// Виведення початкового вектора
cout << "Початковий вектор: ";
PrintVect(vect);
// Вставка 100 перед кожним від'ємним елементом
for (auto it = vect.begin(); it != vect.end(); ++it) {
if (*it < 0) {
it = vect.insert(it, 100); // Вставка 100 перед від'ємним
++it; // Пропускаємо вставлений елемент
}
}
// Виведення зміненого вектора
cout << "Змінений вектор: ";
PrintVect(vect);
return 0;
}
// Функція заповнення вектора випадковими числами
void RandVect(vector<int>& v, int n, int a, int b) {
v.resize(n);
for (int i = 0; i < n; ++i) {
v[i] = a + rand() % (b - a + 1);
}
}
// Функція виведення вектора
void PrintVect(const vector<int>& v) {
for (int num : v) {
cout << num << " ";
}
cout << endl;
}
Пояснення роботи програми:
- Введення параметрів: Користувач вводить діапазон [a, b] та кількість елементів n.
- Генерація вектора: Функція
RandVect заповнює вектор випадковими числами.
- Виведення вектора: Функція
PrintVect показує початковий вектор.
- Вставка елементів:
- Перебираємо вектор за допомогою ітератора
- Для кожного від'ємного елемента вставляємо 100 перед ним
- Збільшуємо ітератор, щоб пропустити вставлений елемент
- Виведення результату: Показує вектор після вставки всіх 100.
Приклад роботи програми:
Введіть мінімальне значення (a): -5
Введіть максимальне значення (b): 5
Введіть кількість елементів (n): 8
Початковий вектор: 2 -3 4 0 -1 5 -2 1
Змінений вектор: 2 100 -3 4 0 100 -1 5 100 -2 1
Ключові особливості:
- Правильна робота з ітераторами при вставці
- Зручний інтерфейс введення/виведення
- Обробка всіх граничних випадків
- Ефективне використання методу insert
Завдання
Для всіх варіантів:
- Ввести з клавіатури n - кількість елементів вектору, а також значення змінних a та b.
- За допомогою функції RandVect заповнити вектор.
- За допомогою функції PrintVect вивести вектор на екран.
- За допомогою функції insert вставити елементи.
- За допомогою функції PrintVect вивести вектор на екран.
Варіанти задач
- Вставити число В після кожного парного числа вектору.
- Вставити число В перед кожним додатним числом вектору.
- Вставити число В у вектор після кожного числа, яке більше числа 20.
- Вставити число В у вектор перед кожним числом, яке закінчується на цифру 1.
- Вставити число В після всіх максимальних чисел вектору.
- Вставити число В перед всіма мінімальними числами вектору.
- Вставити число В після кожного числа, яке закінчується на 3.
- Вставити число В у вектор перед кожним числом, яке кратне 3 або 5.
- Вставити число В у вектор після кожного числа, яке кратне числу Х та закінчується на цифру С.
- Вставити число В у вектор після кожного числа, сума цифр якого дорівнює Х. Додатково використовувати функцію SumDig.
- Вставити число В у вектор після кожного числа, в запису якого є цифра 5. Додатково використовувати функцію NumDigCofA.
- Вставити число В у вектор перед кожним числом, у якого перша цифра дорівнює С. Додатково використовувати функцію FirstDig.
- Вставити число В у вектор після кожного числа, яке складається з однакових цифр (включаючи однозначні). Додатково використовувати функції NumDig та NumDigCofA.
- Вставити число В у вектор після кожного простого числа.
Додатково використовувати функцію IsPrime.
- Вставити число В у вектор після кожного числа, у якого цифри розташовані за спаданням (321, 52).
Додатково використовувати написану функцію IsDesc.
- Вставити число В у вектор перед кожним числом Фібоначчі. Додатково використовувати функцію IsFib.
- Вставити число В у вектор перед кожним числом, яке починається та закінчується однаковими цифрами (окрім однозначних). Додатково використовувати функцію FirstDig.
Вперед
Зміст