На С++ ПОЖАЛУЙСТА: Дано цілі числа a1,...,an , де n – натуральне число. Якщо в даній послідовності жодне парне число не розташоване після непарного, то видалити у масиві всі від’ємні члени послідовності, інакше - все додатні. Порядок проходження чисел в обох випадках змінити на зворотний. Розв’язати задачу, користуючись статичним масивом.
Ответы
Ответ:
Объяснение:
#include <iostream>
const int MAX_SIZE = 100;
void reverseArray(int arr[], int size) {
int start = 0;
int end = size - 1;
while (start < end) {
// обмін елементів місцями
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// переходимо до наступної пари елементів
start++;
end--;
}
}
void processArray(int arr[], int size) {
bool hasOddBeforeEven = false;
// перевірка, чи непарне число передує парному
for (int i = 0; i < size - 1; i++) {
if (arr[i] % 2 != 0 && arr[i + 1] % 2 == 0) {
hasOddBeforeEven = true;
break;
}
}
// видалення від'ємних або додатніх залежно від умови
for (int i = 0; i < size; i++) {
if ((hasOddBeforeEven && arr[i] > 0) || (!hasOddBeforeEven && arr[i] < 0)) {
arr[i] = 0; // можна також видалити елемент, якщо кількість елементів в масиві змінюється
}
}
// зміна порядку елементів в масиві
reverseArray(arr, size);
}
int main() {
int n;
std::cout << "Введіть розмір масиву: ";
std::cin >> n;
int arr[MAX_SIZE];
std::cout << "Введіть елементи масиву: ";
for (int i = 0; i < n; i++) {
std::cin >> arr[i];
}
// обробка та виведення результатів
processArray(arr, n);
std::cout << "Результат: ";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
return 0;
}