#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.