answer (прямого выбора отсортировать Элементы, стоящие на нечетных местах)

#include "stdafx.h"//del #include <iostream> #include <string> using namespace std; const int N = 10; int attribute(int a)// проверка на четность { if (a % 2 == 0) return 0;// четное else return 1;// НЕ ЧЕТНОЕ - НЧ } void selectionSort(int *num, int size)// Функция сортировки прямым выбором { int min, temp; // для поиска минимального элемента и для обмена for (int i = 0; i < size - 1; i++) { min = i; // запоминаем индекс текущего элемента // ищем минимальный элемент чтобы поместить на место i-ого for (int j = i + 1; j < size; j++) // для остальных элементов после i-ого { if (num[j] < num[min]) // если элемент меньше минимального, min = j; // запоминаем его индекс в min } temp = num[i]; // меняем местами i-ый и минимальный элементы num[i] = num[min]; num[min] = temp; } } int main() { int *ptrarray = new int[N]; // создание динамического массива вещественных чисел на N элементов for (int count = 0; count < N; count++) ptrarray[count] = N - count;//заполнение числами от N до 1 cout << "before: "; for (int count = 0; count < N; count++) cout << ptrarray[count] << ' '; //считаем НЧ индексы int len_odd = 0; //кол НЧ индексов for (int i = 0; i < N; i++) if (attribute(i) == 1) len_odd++; cout << endl << "number of odd indices : " << len_odd; //количество нечетных индексов //НОЛЬ ЧЕТНОЕ!! //ОТСЧЕТ ИНДЕКСОВ в С от 0 !! //создаем массив из для чисеел с НЧ индексами и заполняем его int *pMas = new int[len_odd]; // создание динамического массива вещественных чисел на N элементов int pos = 0; for (int i = 0; i < N; i++) if (attribute(i) == 1) { pMas[pos] = ptrarray[i]; pos++; } cout << endl << "before H4: "; //массив с нечетными for (int count = 0; count < len_odd; count++) cout << pMas[count] << ' '; //сортируем массив из чисел с НЧ индекс методом прямого выбора selectionSort(pMas, len_odd);// Функция сортировки прямым выбором cout << endl << "after H4: "; //сортированный массив с нечетными for (int count = 0; count < len_odd; count++) cout << pMas[count] << ' '; //Редактируем исходный массив - подставляем на НЧ инлексы соотв сортированные элементы pos = 0; for (int i = 0; i < N; i++) if (attribute(i) == 1) { ptrarray[i] = pMas[pos]; pos++; } //готово!!!!!! выводим полученный массив cout << endl << endl << "job done!!!!: "; cout << endl << endl << "AFTER: "; for (int count = 0; count < N; count++) cout << ptrarray[count] << ' '; delete[] ptrarray; // высвобождение памяти cout << endl; cout << endl; return 0; }

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.