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

, . программа с сортировки пузырька на с++​

bviktoria4567 bviktoria4567    3   27.11.2019 12:11    0

Ответы
чапмит чапмит  10.10.2020 16:20

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

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика