заполнить массив из 50-ти элементов нечётными случайными числами от 1 до 99. провести сортировку: отсортировать по убыванию только те элементы в массиве, которые лежат в диапазоне от минимального до максимального методом прямого обмена. далее вывести полученный результат.
в с++

10ok 10ok    1   22.12.2019 12:12    42

Ответы
Alferd Alferd  15.01.2024 10:41
Хорошо! Давайте решим эту задачу шаг за шагом.

Шаг 1: Создаем массив и заполняем его случайными нечетными числами.
Для начала, нам нужно создать массив из 50 элементов и заполнить его случайными нечетными числами от 1 до 99. В языке C++ мы можем использовать функции rand() и srand() из библиотеки для генерации случайных чисел. Вот как это делается:

```
#include
#include
#include

int main() {
// Инициализируем генератор случайных чисел
srand(time(0));

// Создаем массив из 50 элементов
int array[50];

// Заполняем массив случайными нечетными числами
for(int i = 0; i < 50; i++) {
do {
array[i] = rand() % 99 + 1; // Генерируем случайное число от 1 до 99
} while(array[i] % 2 == 0); // Повторяем, пока число не станет нечетным
}

// Выводим массив на экран
std::cout << "Сгенерированный массив:\n";
for(int i = 0; i < 50; i++) {
std::cout << array[i] << " ";
}

return 0;
}
```

Шаг 2: Находим минимальное и максимальное значение в массиве.
Чтобы отсортировать только те элементы массива, которые лежат в диапазоне от минимального до максимального, нам нужно сначала найти эти значения. Вот как это делается:

```
// Найдем минимальное и максимальное значение в массиве
int min_value = array[0];
int max_value = array[0];
for(int i = 1; i < 50; i++) {
if(array[i] < min_value) {
min_value = array[i];
}
if(array[i] > max_value) {
max_value = array[i];
}
}
```

Шаг 3: Сортируем элементы в диапазоне от минимального до максимального методом прямого обмена.
Метод прямого обмена (также известный как сортировка пузырьком) позволяет сортировать элементы массива. В этой задаче нам нужно отсортировать только те элементы, которые лежат в диапазоне от минимального до максимального значения. Вот как это делается:

```
// Отсортируем элементы в диапазоне от минимального до максимального методом прямого обмена
for(int i = 0; i < 49; i++) {
for(int j = 0; j < 49 - i; j++) {
if(array[j] < array[j+1]) {
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
```

Шаг 4: Выводим отсортированный массив на экран.
Теперь, когда мы отсортировали элементы массива, можем вывести полученный результат. Вот как это делается:

```
// Выводим отсортированный массив на экран
std::cout << "\nОтсортированный массив:\n";
for(int i = 0; i < 50; i++) {
std::cout << array[i] << " ";
}
```

Итоговый код будет выглядеть так:

```
#include
#include
#include

int main() {
// Инициализируем генератор случайных чисел
srand(time(0));

// Создаем массив из 50 элементов
int array[50];

// Заполняем массив случайными нечетными числами
for(int i = 0; i < 50; i++) {
do {
array[i] = rand() % 99 + 1; // Генерируем случайное число от 1 до 99
} while(array[i] % 2 == 0); // Повторяем, пока число не станет нечетным
}

// Выводим массив на экран
std::cout << "Сгенерированный массив:\n";
for(int i = 0; i < 50; i++) {
std::cout << array[i] << " ";
}

// Найдем минимальное и максимальное значение в массиве
int min_value = array[0];
int max_value = array[0];
for(int i = 1; i < 50; i++) {
if(array[i] < min_value) {
min_value = array[i];
}
if(array[i] > max_value) {
max_value = array[i];
}
}

// Отсортируем элементы в диапазоне от минимального до максимального методом прямого обмена
for(int i = 0; i < 49; i++) {
for(int j = 0; j < 49 - i; j++) {
if(array[j] < array[j+1]) {
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}

// Выводим отсортированный массив на экран
std::cout << "\nОтсортированный массив:\n";
for(int i = 0; i < 50; i++) {
std::cout << array[i] << " ";
}

return 0;
}
```

Надеюсь, эта информация помогла вам. Если у вас возникнут любые дополнительные вопросы, пожалуйста, дайте мне знать!
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика