nixp.ru v3.0

18 января 2017,
среда,
17:05:32 MSK

DevOps с компанией «Флант»
Kat написал 6 ноября 2013 года в 21:36 (718 просмотров) Ведет себя неопределенно; открыл 5 тем в форуме, оставил 7 комментариев на сайте.

Помогите пожалуйста нужно отсортировать четные элементы массива а не четные оставить на своих местах.

Например ввожу 14 52 6 8 4  —— 1 и 5 не четные они стоят на месте а четные сортируются вот что выходит —— 1 2 5 4 4 6 8.

Вот код но он сортирует все элементы массива

#include <iostream>

#include <stdlib.h>

#include <conio.h>

int form (int a[100])

{

int n;

printf («\n enter » ) ;

scanf («%d»,&n);

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

a=rand()%15;

return n;

}

void print (int a[100], int n)

{

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

printf («%d »,a);

printf («\n» );

}

void dell (int a[100], int &n)

{

int i;

int t;

int j=0, b [100];

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

if (a %2!=0 )

{

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

for (int j=0; j<n;j++)

if (a[j] > a[j+1]) {

t = a[j];

a[j] = a[j+1];

a[j+1] = t ;

}

}

}

int main ()

{

int a[100];

int n;

n=form(a);

print (a,n);

dell (a,n);

print (a,n);

}

fhunter

У вас ошибка в функции dell.

Нужный вам алгоритм следующий: обычная пузырьковая (ну что может быть проще?) сортировка. Но, в дополнение к обычному условию сортировки, вам нужно добавить проверку обоих элементов на чётность.

ru.wikipedia.org/wiki/%D0%9F%D1%83%D0%B7%D1%8B%D1%80%D1%8C%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0

PS. Мои глаза! Неужели нельзя отформатировать код с отступами???

Kat

спасибо я уже сама

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.