Другие языки программирования и технологии

Можете пожалуйста помочь с программой на C++.

Можете пожалуйста написать программу которая выведет все элементы массива значения которых не равняются 0 и меньше 53. То есть ты вводишь количество элементов массива например 10, потом выводит тебе оригинальный массив, и потом же выводит измененный.
> и потом же выводит измененный.
В изначальном задании нет ничего про изменение массива, нужно просто вывести подходящие под условие элементы.

#include <ctime>
#include <cstdlib>
#include <iterator>
#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    srand(time(0));
    int n;
    cout << "array size? ";
    cin >> n;
    int *a = new int[n];
    generate_n(a, n, [](){ return rand() % 100; });
    cout << "array:\n";
    copy(a, a + n, ostream_iterator<int>(cout, " "));
    cout << "\n\nnot equal zero and less then 53:\n";
    copy_if(a, a + n, ostream_iterator<int>(cout, " "), [](int x){ return x != 0 && x < 53; });
    cout << '\n';
    delete[] a;
}

Ну а изменить сам исходный массив, тоже не проблема:

#include <ctime>
#include <cstdlib>
#include <iterator>
#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    srand(time(0));
    int n;
    cout << "array size? ";
    cin >> n;
    int *a = new int[n];
    generate_n(a, n, [](){ return rand() % 100; });
    cout << "array:\n";
    copy(a, a + n, ostream_iterator<int>(cout, " "));
    n = remove_if(a, a + n, [](int x){ return x != 0 && x < 53; }) - a;
    cout << "\n\nresult:\n";
    copy(a, a + n, ostream_iterator<int>(cout, " "));
    cout << '\n';
    delete[] a;
}
Владимир Корнилов
Владимир Корнилов
98 316
Лучший ответ
Писать код не буду, но напишу как сделать это:

1. Чтобы вывести все элементы массива которые не равны 0 и меньше 53, просто используй два условия в IF в цикле перебора (==итерация) . Вот так

for_each(array ...)
if (a !== 0 && a < 53){
// можно выводить
}

2. Чтобы выводить один изменный, а один оригинальный - для этого просто создай функцию, которая будет принимать в кач-ве аргумента тот массив и "изменять" его.
Виталя Гук
Виталя Гук
4 333