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

ОЧЕНЬ НУЖНА ПОМОЩЬ С КОДОМ С++

Дан одномерный массив размерности 40 (количество элементов в
массиве кратно 10). Заполнить массив случайными числами в диапазоне
[-140, 140] и вывести его на экран. Найти и вывести на экран минимальный
среди четных и максимальный среди нечетных элементов массива и их
индексы. Разбить массив на 10 равных частей, каждую из которых переставить
в обратном порядке. Вывести массив на экран.
ДП
Дмитрий Пугачев
52 016
Лучший ответ
#include < iostream>
#include < ctime>
#include < limits>
#include < algorithm>

int main() {
const size_t size = 40;
int arr[size];
srand((unsigned)time(nullptr));
int min = std::numeric_limits< int>::max(), max = std::numeric_limits< int>::min();
size_t minIdx = 0, maxIdx = 0;

for (size_t i = 0; i < size; i++) {
arr[i] = rand() % 281 - 140;
std::cout << arr[i] << ' ';
if (arr[i] % 2 == 0 && arr[i] < min) {
min = arr[i];
minIdx = i;
}
if (arr[i] % 2 != 0 && arr[i] > max) {
max = arr[i];
maxIdx = i;
}
}

setlocale(LC_ALL, "");
std::cout << "\nМинимальный элемент среди четных элементов массива и его индекс: ";

if (min != std::numeric_limits< int>::max())
std::cout << min << ' ' << minIdx << '\n';
else
std::cout << "не найден\n";

std::cout << "Максимальный элемент среди нечетных элементов массива и его индекс: ";

if (max != std::numeric_limits< int>::min())
std::cout << max << ' ' << maxIdx << '\n';
else
std::cout << "не найден\n";

if (size > 10 && size % 10 == 0)
for (size_t i = 0; i < 10; i++)
std::reverse(arr + i * size / 10, arr + (i + 1) *size / 10);

for (int item : arr)
std::cout << item << ' ';

return 0;
}