Форум программистов, компьютерный форум CyberForum.ru

Подскажите как правильно сделать - C++

Восстановить пароль Регистрация
 
Keitlin16
1 / 1 / 0
Регистрация: 12.01.2013
Сообщений: 83
06.11.2013, 22:19     Подскажите как правильно сделать #1
Помогите пожалуйста нужно отсортировать четные элементы массива а не четные оставить на своих местах.
Например ввожу 14 52 6 8 4 ---— 1 и 5 не четные они стоят на месте а четные сортируются вот что выходит --— 1 2 5 4 4 6 8.
Вот код но он сортирует все элементы массива
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#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[i]=rand()%15;
return n;
}
 
void print (int a[100], int n)
{
for (int i=0; i<n; i++)
printf ("%d ",a[i]);
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[i] %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);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2013, 22:19     Подскажите как правильно сделать
Посмотрите здесь:

C++ Подскажите пожалуйста как правильно расспечатать
Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку? C++
Подскажите, как правильно написать C++
C++ Подскажите пожалуйста, как правильно вывести,сформировать массив из задания
C++ Подскажите как правильно сделать ! пожалуста с обяснением !
подскажите, как правильно составить алгоритм C++
C++ Подскажите как правильно сделать
C++ Подскажите как правильно сделать

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RQdan
65 / 65 / 17
Регистрация: 26.10.2013
Сообщений: 198
06.11.2013, 22:48     Подскажите как правильно сделать #2
Цитата Сообщение от Keitlin16 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
for ( i=0; i<n; i++) 
if (a[i] %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 ; 
} 
}
Надо заменить этот фрагмент кода на следующий:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int buf;
for(int i=0;i<n-1;i++)
 if(a[i]%2!=1)
 {
  t=i;
  //поиск ячейки с наименьшим значением начиная от текущей ячейки
  for(int j=i+1;j<n;j++)
   if(a[j]%2!=1)
    if(a[t]>a[j]) t=j;
  //текущей ячейке присваивается найденое наименьшее значение
  buf=a[t];
  a[t]=a[i];
  a[i]=buf;
}
Keitlin16
1 / 1 / 0
Регистрация: 12.01.2013
Сообщений: 83
06.11.2013, 23:13  [ТС]     Подскажите как правильно сделать #3
Спасибо
Yandex
Объявления
06.11.2013, 23:13     Подскажите как правильно сделать
Ответ Создать тему
Опции темы

Текущее время: 23:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru