Предмет: Информатика, автор: SlapShow

Дан целочисленный массив размера N. Увеличить все минимальные элементы, содержащиеся в массиве, на исходное значение последнего нечетного числа. Если нечетные числа в массиве отсутствуют, то оставить массив без изменений.(Написать на языке С++)


Koljisto: В следующий раз пишите язык в самом начале
Koljisto: И как может быть несколько минимумов?
Koljisto: Если минимум он один
Koljisto: А ну
Koljisto: Тогда да)
Koljisto: Ладно напишу
Koljisto: Благодарю)
Koljisto: Обожаю отвечать функционалом

Ответы

Автор ответа: Koljisto
1

#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);

}

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