Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ЗАДАНИЕ 4.3 (1)
- // В одномерном массиве удалить промежуток элементов от max до min.
- #include <iostream> // Для ВВОДА и ВЫВОДА
- #include <ctime> // Для ВРЕМЕНИ (time())
- #include <vector> // Для ВЕКТОРА
- using namespace std; // ПРОСТРАНСТВО ИМЁН
- int main() {
- srand(time(NULL)); // Установка рандома (по времени)
- int min = 100; // Минимальное значение
- int index_min = 0; // Индекс Минимального значения
- int max = -1; // Максимальное значение
- int index_max = 0; // Индекс Максимального значения
- int size; // Размер массива
- // Ввод размерма массива
- cout << "Enter size array: ";
- cin >> size;
- vector<int> arr(size); // Объявление массива
- cout << "Array:";
- // Заполнение массива (числами от 0 до 99)
- for (int i = 0; size > i; i++) {
- arr[i] = rand() % 100; // Определение значения
- // Нахождение МИН и МАКС
- if (arr[i] > max) {
- // Если значение больше последнего МАКС
- max = arr[i];
- index_max = i;
- } else if (arr[i] < min) {
- // Если значение меньше последнего МИН
- min = arr[i];
- index_min = i;
- }
- // Для красивого вывода (перевод строки после каждого 10 элем.)
- if (i % 10 == 0) {
- cout << endl;
- }
- // Вывод элемента
- cout << arr[i] << " ";
- }
- cout << endl;
- // Для ясности кода
- if (index_min > index_max) {
- int per = index_min;
- index_min = index_max;
- index_max = per;
- }
- // Последние значимое значение массива
- int last_id = -1;
- // Сдвиг массива
- for (int i = 0; size - index_max - 1 > i; i++) {
- arr[index_min + i] = arr[index_max + i + 1];
- last_id = index_min + i;
- }
- // Удаление незначимых элементов массива
- for (int i = size - 1; last_id + 1 <= i; i--) {
- arr.pop_back();
- }
- cout << "New array:";
- // Вывод элементов массива
- for (int i = 0; last_id >= i; i++) {
- // Для красивого вывода
- if (i % 10 == 0) {
- cout << endl;
- }
- cout << arr[i] << " ";
- }
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement