C++. Одномерные массивы. Задача 2.2
Дан одномерный массив, элементы которого — целые числа. Удалите из него все максимальные элементы.
Формат входных данных
В первой строке входного файла дано число N — количество элементов в массиве (1≤N≤100). В следующей строке находится N чисел, по абсолютному значению не превосходящих 1000.
Формат выходных данных
В выходной файл выведите полученный массив. При выводе разделяйте элементы массива пробелом.
Примеры:
Вход
4
9 8 7 5
Выход
8 7 5
Вход
6
-5 10 10 -6 -6 3
Выход
-5 -6 -6 3
Одномерные массивы. Задача 2.3
Дан одномерный массив, элементы которого — целые числа, и два целых числа L и R. Удалите из массива все элементы x такие, что L≤x≤R.
Формат входных данных
В первой строке входного файла даны три целых числа: N, L и R (−1000≤L≤R≤1000), где N — количество элементов в массиве (1≤N≤100). В следующей строке находится N чисел, по абсолютному значению не превосходящих 1000.
Формат выходных данных
В выходной файл выведите полученный массив. При выводе разделяйте элементы массива пробелом.
Примеры:
Вход
4 7 9
9 8 7 5
Выход
5
Вход
6 -6 0
-5 10 13 -6 -6 3
Выход
10 13 3
Задача 2.2:
Для начала, прочитаем данные из входного файла. В первой строке находится число N - количество элементов в массиве, а в следующей строке - сами элементы массива.
Записываем эти значения в переменные:
```cpp
int N;
cin >> N;
int arr[N];
for (int i = 0; i < N; i++)
{
cin >> arr[i];
}
```
Далее, найдем максимальное значение в массиве:
```cpp
int max_val = arr[0];
for (int i = 1; i < N; i++)
{
if (arr[i] > max_val)
{
max_val = arr[i];
}
}
```
Теперь, создадим новый массив, в котором будут храниться только значения, отличные от максимального:
```cpp
int new_arr[N];
int new_size = 0; // размер нового массива
for (int i = 0; i < N; i++)
{
if (arr[i] != max_val)
{
new_arr[new_size] = arr[i];
new_size++;
}
}
```
Выводим полученный массив в выходной файл, разделяя элементы пробелом:
```cpp
for (int i = 0; i < new_size; i++)
{
cout << new_arr[i] << " ";
}
```
Задача 2.3:
Считываем данные из входного файла: количество элементов N, значения L и R, и сами элементы массива.
```cpp
int N, L, R;
cin >> N >> L >> R;
int arr[N];
for (int i = 0; i < N; i++)
{
cin >> arr[i];
}
```
Также, создадим новый массив и переменную для хранения его размера, аналогично предыдущей задаче:
```cpp
int new_arr[N];
int new_size = 0; // размер нового массива
for (int i = 0; i < N; i++)
{
if (arr[i] < L || arr[i] > R)
{
new_arr[new_size] = arr[i];
new_size++;
}
}
```
Выводим полученный массив в выходной файл, разделяя элементы пробелом:
```cpp
for (int i = 0; i < new_size; i++)
{
cout << new_arr[i] << " ";
}
```
Однако, такая реализация будет работать только в случае, если все числа в массиве отличны от значения L и R.
Если элементы L и R также могут присутствовать в массиве, то лучше использовать вектор:
```cpp
#include
// ...
vector
// ...
for (int i = 0; i < N; i++)
{
if (arr[i] < L || arr[i] > R)
{
new_arr.push_back(arr[i]);
}
}
```
Вывод будет аналогичным.