Вопрос задан 16.07.2023 в 23:01. Предмет Информатика. Спрашивает Бураева София.

Массив на 10 элементов заполнить с клавиатуры натуральными числами, вывести его на строчку,

упорядочить четные элементы по возрастанию, нечетные оставить на своих местах. вывести в строчку уже отсортированый массив. помогите пожалуйста, очень срочно. программа с помощью сортировки пузырька на с++!!1​
0 0
Перейти к ответам

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

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

#include <iostream>

#include <vector>

#include <time.h>

using namespace std;

struct index_value {

int index;

int value;

};

vector<index_value> bubble_sort_fix(vector<index_value> vec) {

index_value temp;

for (size_t i = 0; i < vec.size()-1; i++)

{

 for (size_t j = 0; j < vec.size() - i - 1; j++)

 {

  if (vec[j].value > vec[j + 1].value) {

   temp.value = vec[j].value;

   vec[j].value = vec[j + 1].value;

   vec[j + 1].value = temp.value;

  }

 }

}

return vec;

}

vector<index_value> get_index_and_value_even_in_array(int* arr, int n) {

vector<index_value> vec_even_index_value;

index_value temp;

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

{

 if (arr[i] % 2 == 0) {

  temp.index = i;

  temp.value = arr[i];

  vec_even_index_value.push_back(temp);

 }

}

return vec_even_index_value;

}

void print_array(int* arr, int n) {

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

{

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

}

cout << endl;

}

int* push_in_array_even_vector(vector<index_value> vec, int* arr) {

int i = 0;

for (auto& elem : vec)

{

 arr[elem.index] = elem.value;

}

return arr;

}

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

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

{

 arr[i] = rand() % 100 + 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_vector_index_value(vector<index_value> vec) {

for (auto& elem : vec)

{

 cout << elem.index << " ";

 cout << elem.value << endl;

}

cout << endl;

}

int main()

{

setlocale(LC_ALL, "Russian");

srand(time(NULL));

vector<index_value> vector_even;

int n;

cout << "Введите количество элементов: ";

cin >> n;

int* arr = new int[n];

arr = input_array_auto(arr, n);

print_array(arr, n);

vector_even = get_index_and_value_even_in_array(arr, n);

print_vector_index_value(vector_even);

vector_even = bubble_sort_fix(vector_even);

print_vector_index_value(vector_even);

arr = push_in_array_even_vector(vector_even, arr);

print_array(arr, n);

}

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

Конечно, я помогу вам! Вот пример программы на C++, которая решает вашу задачу, используя сортировку пузырьком:

cpp
#include <iostream> void bubbleSort(int arr[], int size) { for (int i = 0; i < size - 1; i++) { for (int j = 0; j < size - i - 1; j++) { if (arr[j] % 2 == 0 && arr[j + 1] % 2 == 0 && arr[j] > arr[j + 1]) { // Обменять элементы, если оба четные и не в порядке возрастания int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { const int size = 10; int arr[size]; std::cout << "Введите " << size << " натуральных чисел:\n"; for (int i = 0; i < size; i++) { std::cin >> arr[i]; } std::cout << "Исходный массив: "; for (int i = 0; i < size; i++) { std::cout << arr[i] << " "; } bubbleSort(arr, size); std::cout << "\nОтсортированный массив: "; for (int i = 0; i < size; i++) { std::cout << arr[i] << " "; } return 0; }

В этой программе массив заполняется с клавиатуры, затем выводится на экран. Затем применяется сортировка пузырьком только к четным элементам массива, а нечетные элементы остаются на своих местах. В конце программа выводит отсортированный массив.

0 0

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

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

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

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