Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <clocale>
- #include <cstdlib>
- #include <cmath>
- #include <ctime>
- using namespace std;
- void absolute_value(int *arr, int arrSize, int absValue, int *countElements) {
- int localMaxIndex;
- for (int k = 0; k < arrSize; k++) {
- for (int i = 0; i < arrSize - *countElements; i++) {
- if (abs(arr[i]) > absValue) {
- *countElements += 1;
- localMaxIndex = i;
- for (int j = localMaxIndex; j < arrSize; j++)
- arr[j] = arr[j+1];
- }
- localMaxIndex = 0; // Лишнее, возможно.
- }
- }
- }
- int main() {
- setlocale(LC_ALL, "Russian");
- srand(time(0));
- int arrSize,
- absInteger, // Задаваемое число
- countElements; // Счетчик элементов, удовл. условию задачи
- cout << "Удаление элементов, превосходящих заданное число по абсолютному значению, из массива (3).\n";
- anotherTry:
- cout << "Введите размер массива: "; cin >> arrSize;
- if (arrSize < 1) {
- cout << "\nВведено некорректное значение. Попробуйте ещё раз.\n";
- goto anotherTry;
- }
- int *arr = new int[arrSize];
- // Заполнение массива и вывод на экран:
- for (int i = 0; i < arrSize; i++) {
- arr[i] = 1 + rand() % 200 - 100;
- cout << setw(4) << arr[i];
- }
- cout << "\nВведите число, по которому из массива удалятся элементы, превосходящие его: "; cin >> absInteger;
- absolute_value(arr, arrSize, absInteger, &countElements);
- // Вывод полученных данных:
- cout << "\nПолученный результат:\n";
- for (int i = 0; i < arrSize - countElements; i++)
- cout << setw(4) << arr[i];
- cout << endl;
- delete [] arr;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement