• Срочно нужна помощь. С++.1.Данный массив размера N. найти максимальный из его элементов, не являющийся ни локальным минимумом(элемент, меньший каждого из своих соседей), ни локальным максимумом(элемент, больше каждого из своих соседей). если таких элементов в массиве нет, то вывести 0(как вещественное число).2.Данный массив размера N. Обнулить элементы массива, расположенные между минимальным и максимальным элементами (не включая минимальный и максимальный элементы)​

Ответы 1

  • Ответ:

    #include <iostream>

    // ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¿ÑовеÑки, ÑвлÑеÑÑÑ Ð»Ð¸ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð»Ð¾ÐºÐ°Ð»ÑнÑм минимÑмом или макÑимÑмом

    bool isLocalMinMax(int arr[], int n, int index) {

    if (index > 0 && index < n - 1) {

    return (arr[index] > arr[index - 1] && arr[index] > arr[index + 1]) ||

    (arr[index] < arr[index - 1] && arr[index] < arr[index + 1]);

    }

    return false;

    }

    double findMaxNonLocalMinMax(int arr[], int n) {

    double maxNonLocalMinMax = 0; // ÐниÑиализиÑÑем пеÑеменнÑÑ Ð¼Ð°ÐºÑималÑного ÑлеменÑа

    for (int i = 0; i < n; ++i) {

    if (!isLocalMinMax(arr, n, i) && arr[i] > maxNonLocalMinMax) {

    maxNonLocalMinMax = arr[i];

    }

    }

    return maxNonLocalMinMax;

    }

    int main() {

    int N; // Ð Ð°Ð·Ð¼ÐµÑ Ð¼Ð°ÑÑива

    std::cout << "ÐведиÑе ÑÐ°Ð·Ð¼ÐµÑ Ð¼Ð°ÑÑива: ";

    std::cin >> N;

    int arr[N]; // ÐбÑÑвление маÑÑива ÑазмеÑа N

    std::cout << "ÐведиÑе ÑлеменÑÑ Ð¼Ð°ÑÑива: ";

    for (int i = 0; i < N; ++i) {

    std::cin >> arr[i];

    }

    double result = findMaxNonLocalMinMax(arr, N);

    if (result == 0) {

    std::cout << "ÐакÑималÑнÑй ÑлеменÑ, не ÑвлÑÑÑийÑÑ Ð»Ð¾ÐºÐ°Ð»ÑнÑм минимÑмом или макÑимÑмом, не найден." << std::endl;

    } else {

    std::cout << "ÐакÑималÑнÑй ÑлеменÑ, не ÑвлÑÑÑийÑÑ Ð»Ð¾ÐºÐ°Ð»ÑнÑм минимÑмом или макÑимÑмом: " << result << std::endl;

    }

    return 0;

    }

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years