Вопрос задан 16.07.2023 в 12:30. Предмет Информатика. Спрашивает Королёв Евгений.

Дан целочисленный массив размера N. Увеличить все минимальные элементы, содержащиеся в массиве, на

исходное значение последнего нечетного числа. Если нечетные числа в массиве отсутствуют, то оставить массив без изменений.(Написать на языке С++)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Стрельникова Катя.

#include <iostream>

#include <time.h>

#include <algorithm>

using namespace std;

int* input_array_auto(int* arr, int n) {

for (size_t i = 0; i < n; i++)

{

 arr[i] = rand() % 10 + 1;

}

return arr;

}

int* input_array(int* arr, int n) {

for (size_t i = 0; i < n; i++)

{

 cin >> arr[i];

}

return arr;

}

void print_array(int* arr, int n) {

for (size_t i = 0; i < n; i++)

{

 cout << arr[i] << " ";

}

cout << endl;

}

bool check_odd(int elem) {

return elem % 2 == 1 ? true : false;

}

int find_last_odd (int* arr, int n) {

int last_odd = 0;

for (size_t i = 0; i < n; i++)

{

 if (check_odd(arr[i])) {

  last_odd = arr[i];

 }

}

return last_odd;

}

int* overwriting_minima_array(int* arr, int n, int min, int last_odd) {

for (size_t i = 0; i < n; i++)

{

 if (arr[i] == min) {

  arr[i] = arr[i] + last_odd;

 }

}

return arr;

}

int main()

{

setlocale(LC_ALL, "Russian");

srand(time(NULL));

int n;

cout << "Введите N: ";

cin >> n;

int* arr = new int[n];

arr = input_array_auto(arr, n);

print_array(arr, n);

int *min = min_element(arr, arr + n);

int last_odd = find_last_odd(arr, n);

arr = overwriting_minima_array(arr, n, *min, last_odd);

print_array(arr, n);

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример реализации данной задачи на языке C++:

cpp
#include <iostream> #include <vector> #include <algorithm> void increaseMinElements(std::vector<int>& arr) { // Находим последнее нечетное число в массиве int lastOdd = 0; for (int i = arr.size() - 1; i >= 0; --i) { if (arr[i] % 2 != 0) { lastOdd = arr[i]; break; } } // Если нечетные числа отсутствуют, выходим if (lastOdd == 0) { return; } // Находим минимальный элемент в массиве int minElement = *std::min_element(arr.begin(), arr.end()); // Увеличиваем все минимальные элементы на значение последнего нечетного числа for (int i = 0; i < arr.size(); ++i) { if (arr[i] == minElement) { arr[i] += lastOdd; } } } int main() { int N; std::cout << "Введите размер массива: "; std::cin >> N; std::vector<int> arr(N); std::cout << "Введите элементы массива: "; for (int i = 0; i < N; ++i) { std::cin >> arr[i]; } increaseMinElements(arr); std::cout << "Массив после увеличения минимальных элементов: "; for (int i = 0; i < N; ++i) { std::cout << arr[i] << " "; } std::cout << std::endl; return 0; }

Эта программа сначала запрашивает размер массива N и затем просит ввести элементы массива. Затем она вызывает функцию increaseMinElements, которая увеличивает все минимальные элементы в массиве на значение последнего нечетного числа. Результат выводится на экран.

Пожалуйста, обратите внимание, что в данном примере не выполняется проверка корректности ввода пользователем, поэтому стоит убедиться, что введенные данные соответствуют условиям задачи.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос