Преобразовать целочисленный массив Х, расположив в начале его четные, а затем нечетные элементы - C (СИ) (72218)

Узнай цену своей работы

Формулировка задачи:

Преобразовать целочисленный массив Х, расположив в начале его четные, а затем нечетные элементы, сохранив в каждой из двух групп относительный порядок элементов. Смотрел примеры, делал по аналогии, но не выходит. пробовал выводить 2 массива, в одном четные, в другом нечетные числа, но тоже как то не очень получилось. Надеюсь кто то поможет. + к карме.
// Лабораторная4б.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a[100],i,n,dop=0,b[100]={0},temp[100];
    scanf("%d",&n);
    for(i=0;i<n;i++)
                    {
                        a[i]=rand()%100;
                        printf("%d  ",a[i]);
                    }
    int k=0;
    for(i=0;i<n;i++)
                    {
                        if(a[i]%2==0) {b[i]=a[i];}
                        else {temp[i]=a[i];}
                        k++;
                    }
    
    for(i=k;i<n;i++)
                    { 
                        b[i]=temp[i];
                    }
    printf("\n");
    for(i=0;i<n;i++)
                    {
                        printf("%d ",b[i]);
                    }
    getch();
    return 0;
}

Решение задачи: «Преобразовать целочисленный массив Х, расположив в начале его четные, а затем нечетные элементы»

textual
Листинг программы
int k=0;
for(i=0;i<n;i++)
{
   if(a[i]%2==0) 
   {
      b[k]=a[i];
      k++;
   }
} 
for(i=0;i<n;i++)
}
   if(a[i]%2!=0) 
   {
      b[k]=a[i];
      k++;
   }
}

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. Создается целочисленная переменная k и инициализируется значением 0 .
  2. Происходит два прохода по массиву a с помощью цикла for и переменной i .
  3. Внутри первого прохода проверяется четность элемента массива a[i] с помощью оператора % и условия a[i]%2==0 . Если элемент четный, то он копируется в массив b с индексом k и увеличивает значение переменной k на единицу.
  4. Во втором проходе проверяется нечетность элемента массива a[i] с помощью условия a[i]%2!=0 . Если элемент нечетный, то он также копируется в массив b с индексом k и увеличивает значение переменной k на единицу.
  5. Переменная n не используется в коде, но ее присутствие говорит о том, что массив a имеет длину n .
  6. В конце кода нет закрывающей фигурной скобки, что говорит о том, что код, вероятно, является частью более крупной программы.

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы