Преобразовать целочисленный массив Х, расположив в начале его четные, а затем нечетные элементы - 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++;
}
}
Объяснение кода листинга программы
В данном коде происходит следующее:
- Создается целочисленная переменная
kи инициализируется значением0. - Происходит два прохода по массиву
aс помощью циклаforи переменнойi. - Внутри первого прохода проверяется четность элемента массива
a[i]с помощью оператора%и условияa[i]%2==0. Если элемент четный, то он копируется в массивbс индексомkи увеличивает значение переменнойkна единицу. - Во втором проходе проверяется нечетность элемента массива
a[i]с помощью условияa[i]%2!=0. Если элемент нечетный, то он также копируется в массивbс индексомkи увеличивает значение переменнойkна единицу. - Переменная
nне используется в коде, но ее присутствие говорит о том, что массивaимеет длинуn. - В конце кода нет закрывающей фигурной скобки, что говорит о том, что код, вероятно, является частью более крупной программы.