Я намеревался отсортировать array
, помещая отрицательные целые числа впереди (слева) от массива и оставляя положительные целые числа справа, но без изменения их порядка. Почему-то не работала расстановка минусов и плюсов, а так же программа показывает нули вместо плюсов в resultArr
. Был бы признателен, если бы кто-нибудь мог помочь с тем, что я делаю неправильно.
#include <stdio.h>
#define LENGTH 9
int numArr[LENGTH] = {5, -7, -87, -221, 7, 97, 1, -5, 5};
int resultArr[LENGTH];
int i;
int j = 0;
int disp;
int main()
{
for (int i = 1; i < LENGTH; i++)
{
disp = numArr[i];
if (disp > 0)
{
continue;
}
j = i - 1;
while (resultArr[j] > 0 && j>= 0)
{
resultArr[j + 1] = resultArr[j];
j--;
}
resultArr[j + 1] = disp;
}
printf("Original array : %d ", *numArr);
for (i = 1; i < LENGTH; i++)
{
printf(" %d ", numArr[i]);
}
printf("Rearranged array : ");
for (j = 0; j < LENGTH; j++)
{
printf(" %d ", resultArr[j]);
}
return 0;
}