Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/198: Рейтинг темы: голосов - 198, средняя оценка - 4.78
227 / 3 / 3
Регистрация: 01.04.2010
Сообщений: 145

Массив(чётные и нечётные числа)

19.09.2012, 10:39. Показов 38000. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите, пожалуйста, написать программу:
нужно в массиве, в его начало, поставить сначала все четные числа, а затем нечётные...затем посчитать количество чётных чисел в массиве(массив можно ввести с клавиатуры, а можно через "srand").
Делать это нужно путём перестановки элементов в массиве.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.09.2012, 10:39
Ответы с готовыми решениями:

Массив(чётные и нечётные числа)
помогите, пожалуйста, написать программу: нужно в массиве, в его начало, поставить сначала все четные числа, а затем нечётные...затем...

Дан массив из N элементов. В нём чётные числа заменить на 0, а нечётные на -1
Помогите пожалуйста с задачей Дан массив из N элементов. В нём чётные числа заменить на 0, а нечётные на -1, Вывести на экран монитора...

Реализовать функцию, принимающую на вход массив и проверяющую, чередуются ли в нем чётные и нёчетные числа
Написать функцию, которая принимает целочисленный массив размера N. Проверить, чередуются ли в нем четные и нечетные числа. Если ...

39
227 / 3 / 3
Регистрация: 01.04.2010
Сообщений: 145
22.09.2012, 16:58  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от BumerangSP Посмотреть сообщение
Micki, нет, программа выдает 123456789 при таком же примере.
а разве не должна выдавать 10? так как не убывающая последовательность состоит из 10 элеиентов? или я где-то чего-то не так понимаю?
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
22.09.2012, 17:25
Так: здесь я спросил: https://www.cyberforum.ru/cpp/... ost3470579 Ответ был "да". Т.е нужно просто длину вывести?

Добавлено через 11 минут
И еще: Вы вводили через пробелы числа? Тогда это все меняет: я ведь использовал строку, а не массив, отсюда такие различия.
0
227 / 3 / 3
Регистрация: 01.04.2010
Сообщений: 145
22.09.2012, 17:52  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
Так: здесь я спросил: https://www.cyberforum.ru/cpp/... ost3470579 Ответ был "да". Т.е нужно просто длину вывести?

Добавлено через 11 минут
И еще: Вы вводили через пробелы числа? Тогда это все меняет: я ведь использовал строку, а не массив, отсюда такие различия.
упс, ссори...мой косяк. Я Ваш вопрос не так для себя разьяснил. Начнём всё с начала
На экран нужно вывести максимальную длинну неубывающей последовательности какого-то массива(массив можно ввести с помощью "srand", а можно вручную)
Пример: 1 2 3 4 5 6 7 8 9 10
Программа даёт ответ: 10
Я, по сути написал такую программу ,но преподователь забраковал её, приведя ме такой пример при котором программа работает неверно, вот фото: http://www.imageup.ru/img274/1048564/dsc_0136.jpg только вот я уме не приложу, что там не так
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
22.09.2012, 18:02
Micki, мой код в данный момент походит на Ваш. А пример тот самый есть?
0
227 / 3 / 3
Регистрация: 01.04.2010
Сообщений: 145
22.09.2012, 18:39  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
Micki, мой код в данный момент походит на Ваш. А пример тот самый есть?
на том фото и есть тот самый пример. Там он(преподователь) ввёл(задал) массив из 11 элементов ,а искать максимальную длину неубывающей последовательности он попросил программу среди 10 элементов этого массива...в итоге в ответе печатается 1, хотя по замыслу должна выводить 10.
вот моя программа без изменений преподователя(но там вроде как есть ошибки): http://www.imageup.ru/img247/1050183/dsc_0134.jpg
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
22.09.2012, 19:09
А так прокатит?
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
#include <iostream>
#include <iomanip>
const int n = 5; //размер последовательности
int main()
{
 int i;
 int* a = new int [n];
 std::cout<<"Input "<<n<<" numbers: ";
 for (i=0;i<n;i++)
  std::cin>>a[i];
 std::cout<<'\n';
 for (i=0;i<n;i++)
  std::cout<<a[i]<<std::setw(4); 
 int m=0,k=0;
 int j=1;
 for (i=n-1;i>=-1;i--)
  {
   if (i==0)
    j=0;
   if ((a[i]>=a[i-j])&&(i>=0))
    k++;
   else
    if (k>0)
    {
     if (k>m)
      {     
       m=k;
       if (i>0)
        m++;
      }
     k=0;
    }
   }
 if (m==1)
  m=0;
 std::cout<<std::endl<<"The longest: "<<m<<'\n';
 delete[] a; 
 system("pause");
 return 0;
}
Сорри, на ум больше ничего не приходит(
0
227 / 3 / 3
Регистрация: 01.04.2010
Сообщений: 145
22.09.2012, 19:15  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
А так прокатит?...Сорри, на ум больше ничего не приходит(
спасибо большое! и как всегда, если можно- каждую строчку расписать? И в кратце принцип действия этой программы(всмысли, что она делает последовательно...т.ч. берёт первый элемент ,сравнивает с предыдущим...меняет местами)
Спасибо
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.09.2012, 19:33
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
#include <boost/lambda/lambda.hpp>
 
int main()
{
    using namespace boost::lambda;
    
    srand( time(0) );
    std::vector< int > arr(rand() % 30);
    std::generate(arr.begin(), arr.end(), rand);
    std::cout << "Before: ";
    std::for_each(arr.begin(), arr.end(), std::cout << _1 << " ");
    int even_count = std::partition(arr.begin(), arr.end(), !(_1 % 2) ) - arr.begin();
    std::cout << "\nAfter: ";
    std::for_each(arr.begin(), arr.end(), std::cout << _1 << " ");
    std::cout << "\nEven count: " << even_count << std::endl;
}
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
22.09.2012, 19:44
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <iomanip>
const int n = 5; //размер последовательности
int main()
{
 int i;
 int* a = new int [n];
 std::cout<<"Input "<<n<<" numbers: ";
 for (i=0;i<n;i++)
  std::cin>>a[i];
 std::cout<<'\n';
 for (i=0;i<n;i++)
  std::cout<<a[i]<<std::setw(4); 
 int m=0,k=0;
 int j=1;
 for (i=n-1;i>=-1;i--) //начинаем чтения массива с конца
  {
   if (i==0) //предотвращение ошибки чтения за границей массива (в начале)
    j=0;
   if ((a[i]>=a[i-j])&&(i>=0)) //сравнение
    k++;
   else
    if (k>0) //если нашли хоть что-то
    {
     if (k>m)
      {     
       m=k; //записываем
       if (i>0) //на случай, если послед-ть не на краях массива
        m++;
      }
     k=0;
    }
   }
 if (m==1) //в случаях, когда посл-ти вообще нет, может выйти 1, тоже исправляем
  m=0;
 std::cout<<std::endl<<"The longest: "<<m<<'\n';
 delete[] a; 
 system("pause");
 return 0;
}
1
227 / 3 / 3
Регистрация: 01.04.2010
Сообщений: 145
24.09.2012, 21:18  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <iomanip>
const int n = 5; //размер последовательности
int main()
{
 int i;
 int* a = new int [n];
 std::cout<<"Input "<<n<<" numbers: ";
 for (i=0;i<n;i++)
  std::cin>>a[i];
 std::cout<<'\n';
 for (i=0;i<n;i++)
  std::cout<<a[i]<<std::setw(4); 
 int m=0,k=0;
 int j=1;
 for (i=n-1;i>=-1;i--) //начинаем чтения массива с конца
  {
   if (i==0) //предотвращение ошибки чтения за границей массива (в начале)
    j=0;
   if ((a[i]>=a[i-j])&&(i>=0)) //сравнение
    k++;
   else
    if (k>0) //если нашли хоть что-то
    {
     if (k>m)
      {     
       m=k; //записываем
       if (i>0) //на случай, если послед-ть не на краях массива
        m++;
      }
     k=0;
    }
   }
 if (m==1) //в случаях, когда посл-ти вообще нет, может выйти 1, тоже исправляем
  m=0;
 std::cout<<std::endl<<"The longest: "<<m<<'\n';
 delete[] a; 
 system("pause");
 return 0;
}
а можешь на словах объяснить принцип этого алгоритма? К примеру: берётся последний элемент массива, сравнивается с предпоследним, если он меньше предпоследнего, то k увеличиваем на один...если к больше m, то k=m...т.ч мне не понятна переменная j
Цитата Сообщение от BumerangSP Посмотреть сообщение
int m=0,k=0;
int j=1;
for (i=n-1;i>=-1;i--) //начинаем чтения массива с конца
{
if (i==0)
j=0;
if ((a[i]>=a[i-j])&&(i>=0)) //сравнение
k++;
П.с: понимаю, что уже надоел вам, но хотелось бы до конца разобраться в поставленной задаче
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
24.09.2012, 23:11
Кликните здесь для просмотра всего текста
j - это как бы исправление небольшое. Изначальная равна единице. a[i-j] - это все равно что a[i-1], т.е. там идет сравнение текущего с предыдущим (потому что с конца в начало идем). if (i==0) j=0; - когда достигли начала массива, то чтобы не было выхода за границы диапазона, мы делаем j=0. Получается, текущий сравнивается с текущим (a[i] с a[i-j] при j=0). Это как раз и нужно, т.к. при сравнении всегда не хватает одного элемента (т.е. значение k должно быть на один больше. Этим сравнением мы и перекрываем недостаток).
Метод не ахти, можно было намного проще и удобней написать.)
0
227 / 3 / 3
Регистрация: 01.04.2010
Сообщений: 145
25.09.2012, 08:48  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
Кликните здесь для просмотра всего текста
j - это как бы исправление небольшое. Изначальная равна единице. a[i-j] - это все равно что a[i-1], т.е. там идет сравнение текущего с предыдущим (потому что с конца в начало идем). if (i==0) j=0; - когда достигли начала массива, то чтобы не было выхода за границы диапазона, мы делаем j=0. Получается, текущий сравнивается с текущим (a[i] с a[i-j] при j=0). Это как раз и нужно, т.к. при сравнении всегда не хватает одного элемента (т.е. значение k должно быть на один больше. Этим сравнением мы и перекрываем недостаток).
Метод не ахти, можно было намного проще и удобней написать.)
главное чтобы работало корректно(а так оно и есть)...Спасибо!
0
227 / 3 / 3
Регистрация: 01.04.2010
Сообщений: 145
26.09.2012, 12:30  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
for (int i=0; i<n; i++)
for (int j=i; j<n; j++) //двумя циклами перебираем все элементы массива
if (a[j] % 2 == 0) //если элемент четный
{
int k = a[i]; //меняем местами элемент с j-м индексом на
a[i]=a[j]; //элемент с i-м
a[j]=k; //таким образом сначала выходят все четные, а потом нечетные
}
А можещь ещё в программе, где нужно было в начале массива разместить все чётные числа и подсчитать их количество обЪяснить вот эти строки...т.ч. мну не понятна строка " for (int j=i; j<n; j++)" и зачем мы сначала ищем чётные элементы по j-индексу, а в конце считаем количество чётных элементво по i- индексу..
Цитата Сообщение от BumerangSP Посмотреть сообщение
if (a[j] % 2 == 0) //если элемент четный

if (a[i] % 2 == 0) //определяем количество четных
kol++;
хотя я и осознаю всю глупость второго вопроса, но хотябы ответте на первый, что делает второй цикл for?
Цитата Сообщение от BumerangSP Посмотреть сообщение

for (int j=i; j<n; j++)
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
26.09.2012, 13:33
for (int j=i; j<n; j++)
Этим мы сортируем элементы. Поэкспериментируйте с j и станет понятно, почему он с i начинается.
Количество можно и так найти:
C++
1
2
3
4
5
6
7
8
9
10
11
12
 for (int i=0; i<n; i++)
  {
        for (int j=i; j<n; j++) 
   if (a[j] % 2 == 0)
    {
     int k = a[i];
     a[i]=a[j];
     a[j]=k;
    }   
             if (a[i] % 2 == 0)
    kol++;
            }
Просто двигаться нужно от начала массива. А второй (вложенный, с j который) цикл проходит n раз, нам нужно только 1. Поэтому я и считал в другом цикле, который для вывода на экран нужен. Какая разница где считать?) В таком небольшом коде.
1
227 / 3 / 3
Регистрация: 01.04.2010
Сообщений: 145
26.09.2012, 14:28  [ТС]
Благодарю
И последний, надеюсь, вопрос- для чего в условии if нужно второе условие...т.ч. ...&&(i>=0)
Цитата Сообщение от BumerangSP Посмотреть сообщение
C++
1
   if ((a[i]>=a[i-j])&&(i>=0)) //сравнение
и как понять вот это- "на случай, если послед-ть не на краях массива"
Цитата Сообщение от BumerangSP Посмотреть сообщение
C++
1
2
   if (i>0) //на случай, если послед-ть не на краях массива
        m++;
это там, где неубывающую последовательность надо было найти
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
26.09.2012, 14:44
1) i может быть меньше нуля, тогда выход за границы массива.
2) Пример:
132112343231
Послед-ть в данном случае не на крае массива (т.е., например, не в самом начале), а где-то в середине. Тут надо прибавить 1 к m.
1
227 / 3 / 3
Регистрация: 01.04.2010
Сообщений: 145
26.09.2012, 16:04  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
2) Пример:
132112343231
Послед-ть в данном случае не на крае массива (т.е., например, не в самом начале), а где-то в середине. Тут надо прибавить 1 к m.
вот в том-то и дело, что я не могу понять почему если последовательность не на краях массива нужно к m прибовлять 1...(

Добавлено через 38 минут
Цитата Сообщение от Micki Посмотреть сообщение
вот в том-то и дело, что я не могу понять почему если последовательность не на краях массива нужно к m прибовлять 1...(
также мне не очень и понятно это
Цитата Сообщение от BumerangSP Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
 for (int i=0; i<n; i++)
  for (int j=i; j<n; j++)  //двумя циклами перебираем все элементы массива
   if (a[j] % 2 == 0) //если элемент четный
    {
     int k = a[i]; //меняем местами элемент с j-м индексом на 
     a[i]=a[j];    //элемент с i-м 
     a[j]=k; //таким образом сначала выходят все четные, а потом нечетные
    }
второй for(с индексом j) я так понимаю это вложенный цикл в первый for...два этих цикла перебирают все элементы массива, затем чётные элементы меняются с нечётными местами, но как это происходит я себе не вполне представляю...
П.с: извините, что гружу Вас...но понять всё же хочется)
П.с.с: возможно я где-то чего-то и напутал, возможно мои вопросы неосознанно глупы...прошу указать на это, если так и есть)
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
26.09.2012, 16:23
Кликните здесь для просмотра всего текста
Цитата Сообщение от Micki Посмотреть сообщение
вот в том-то и дело, что я не могу понять почему если последовательность не на краях массива нужно к m прибавлять 1...(
Это надо по шагам рассматривать. Вам опыт надо нарабатывать, чтобы понимать действия в коде.
Пример:
дано: 32123. Сравнение идет с конца, т.е. сначала сравниваем 3 и 2. Условие (a[i]>=a[i-j])&&(i>=0) выполняется, увеличиваем k, далее 2 и 1, опять увеличиваем. Итого k уже равно 2. Далее сравниваем 1 и 2, условие не выполняется, а это значит, что мы переходим сюда:
C++
1
2
3
4
5
6
7
8
9
10
11
else
    if (k>0)
    {
     if (k>m)
      {     
       m=k;
       if (i>0)
        m++;
      }
     k=0;
    }
Но получается, что последовательность у нас состоит из 3-х чисел, а k равно 2, притом мы еще не дошли до начала (еще число 3 не проверено, например, отсюда i=2, а a[i]=1 (индексация массива с нуля)) Поэтому мы прибавляем еще 1.
Другой пример: 1232. Сравниваем...В итоге при i=1 у нас k равно 2. Далее i будет = 0, но если мы сравним a[0] и a[0-j] при j=1 (a[i-1] не существует) в a[-1] содержится всякий мусор, поэтому сравнение с ним будет некорректным. Исправляет эту ситуацию вот это условие:
C++
1
2
 if (i==0)
    j=0;
Получается, что a[0] сравнивается с самим собой и нет необходимости прибавлять единицу к m, поэтому условие
C++
1
2
if (i>0) //на случай, если послед-ть не на краях массива
        m++;)
здесь является нецелесообразным.
Надеюсь, доступно объяснил.
1
227 / 3 / 3
Регистрация: 01.04.2010
Сообщений: 145
26.09.2012, 19:04  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
Кликните здесь для просмотра всего текста

Это надо по шагам рассматривать. Вам опыт надо нарабатывать, чтобы понимать действия в коде.
Пример:
дано: 32123. Сравнение идет с конца, т.е. сначала сравниваем 3 и 2. Условие (a[i]>=a[i-j])&&(i>=0) выполняется, увеличиваем k, далее 2 и 1, опять увеличиваем. Итого k уже равно 2. Далее сравниваем 1 и 2, условие не выполняется, а это значит, что мы переходим сюда:
C++
1
2
3
4
5
6
7
8
9
10
11
else
    if (k>0)
    {
     if (k>m)
      {     
       m=k;
       if (i>0)
        m++;
      }
     k=0;
    }
Но получается, что последовательность у нас состоит из 3-х чисел, а k равно 2, притом мы еще не дошли до начала (еще число 3 не проверено, например, отсюда i=2, а a[i]=1 (индексация массива с нуля)) Поэтому мы прибавляем еще 1.
Другой пример: 1232. Сравниваем...В итоге при i=1 у нас k равно 2. Далее i будет = 0, но если мы сравним a[0] и a[0-j] при j=1 (a[i-1] не существует) в a[-1] содержится всякий мусор, поэтому сравнение с ним будет некорректным. Исправляет эту ситуацию вот это условие:
C++
1
2
 if (i==0)
    j=0;
Получается, что a[0] сравнивается с самим собой и нет необходимости прибавлять единицу к m, поэтому условие
C++
1
2
if (i>0) //на случай, если послед-ть не на краях массива
        m++;)
здесь является нецелесообразным.
Надеюсь, доступно объяснил.
ух, куча благодарностей Вам! объяснили так, что вопросов не осталось никаких по данному коду)

Добавлено через 2 часа 25 минут
Цитата Сообщение от BumerangSP Посмотреть сообщение
Кликните здесь для просмотра всего текста

Это надо по шагам рассматривать. Вам опыт надо нарабатывать, чтобы понимать действия в коде.
Пример:
дано: 32123. Сравнение идет с конца, т.е. сначала сравниваем 3 и 2. Условие (a[i]>=a[i-j])&&(i>=0) выполняется, увеличиваем k, далее 2 и 1, опять увеличиваем. Итого k уже равно 2. Далее сравниваем 1 и 2, условие не выполняется, а это значит, что мы переходим сюда:
C++
1
2
3
4
5
6
7
8
9
10
11
else
    if (k>0)
    {
     if (k>m)
      {     
       m=k;
       if (i>0)
        m++;
      }
     k=0;
    }
Но получается, что последовательность у нас состоит из 3-х чисел, а k равно 2, притом мы еще не дошли до начала (еще число 3 не проверено, например, отсюда i=2, а a[i]=1 (индексация массива с нуля)) Поэтому мы прибавляем еще 1.
Другой пример: 1232. Сравниваем...В итоге при i=1 у нас k равно 2. Далее i будет = 0, но если мы сравним a[0] и a[0-j] при j=1 (a[i-1] не существует) в a[-1] содержится всякий мусор, поэтому сравнение с ним будет некорректным. Исправляет эту ситуацию вот это условие:
C++
1
2
 if (i==0)
    j=0;
Получается, что a[0] сравнивается с самим собой и нет необходимости прибавлять единицу к m, поэтому условие
C++
1
2
if (i>0) //на случай, если послед-ть не на краях массива
        m++;)
здесь является нецелесообразным.
Надеюсь, доступно объяснил.
а можете, если не затруднит, также расписать действие вот этого цикла
Цитата Сообщение от BumerangSP Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 for (int i=0; i<n; i++)
  for (int j=i; j<n; j++)  //двумя циклами перебираем все элементы массива
   if (a[j] % 2 == 0) //если элемент четный
    {
     int k = a[i]; //меняем местами элемент с j-м индексом на 
     a[i]=a[j];    //элемент с i-м 
     a[j]=k; //таким образом сначала выходят все четные, а потом нечетные
    }    
 for (int i=0; i<n; i++) //циклом по элементам
  {
   if (a[i] % 2 == 0) //определяем количество четных
    kol++;
   std::cout<<a[i]<<std::setw(4); //и попутно выводим на экран измененный массив
  }
пожалуйста
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
26.09.2012, 20:19
Кликните здесь для просмотра всего текста
А тут что? Цикл первый? Здесь каждый j-й элемент сравнивается n-i раз со всеми последующими.
Дан массив: 1 3 7 2 4 2 4. Проходим по ним циклами: сначала a[i] при i=0. При j=i, т.е. 0 проходим до n-1. При этом мы ищем четный элемент. a[0]=1. Вторым циклом находим четный элемент, т.е 2 (a[3]) и меняем его местами с a[i]-ым. Получается так: 2 3 7 1 4 2 4. Берем второй элемент. Начинаем второй цикл от него, т.к. нет смысла начинать с начала (у нас там уже стоит четный элемент). Находим a[j]=4, меняем местами с a[i]=3. 2 4 7 1 3 2 4. Таким образом смещаем все четные влево, нечетные при этом вытеснятся вправо.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2012, 20:19

Создать двумерный массив 10 на 20, который будет сортировать четные числа по возростанию и нечетные по убывани
Создать двумерный массив 10 на 20, который будет сортировать четные числа по возростанию и нечетные по убыванию. ребят если хто нить...

Перенести в один другой массив четные числа.Затем перенести в еще один другой массив нечетные числа.
Дан массив из 10 элементов.Перенести в один другой массив четные числа.Затем перенести в еще один другой массив нечетные числа.Помогите с...

Чётные и нечётные числа: определить чётность числа, введённого пользователем с клавиатуры
Пользователь вводит с клавиатуры число. Вывести на экран Y, если число четное и N, если число не четное. с++

Из одного файла считать целые числа, в другие файлы записать четные и нечетные числа
Нужно с одного файла считать целые числа и в другие файлы записать четные и нечетные числа. Вот код, но почему-то не работает...и как...

Четные и нечетные биты числа переписать в отдельные числа
Дано длинное целое неотрицательное число. Получить два коротких целых неотрицательных числа, одно из которых заполнено содержимым битов...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
28. КОнкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru