В массиве все отрицательные элементы переместить в начало массива а остальные в конец - C (СИ)

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

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

В одномерном массиве все отрицательные элементы перемещаются в начало массива а остальные в конец ,с сохранить порядок следования . Доп. массив заводить нельзя Код:
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
 
int main() 
{ 
int size=0; 
int i,j; 
int tmp; 
printf("Enter size of an array\n"); 
scanf("%d",&size); 
int arr[size]; 
printf("Generated array: \n"); 
for(i=0;i<size;i++) 
{ 
arr[i]=rand() % 20 + (-10); 
printf(" %d ",arr[i]); 
} 
printf(" \n"); 
for(j=0;j<size;j++) 
{ 
for(i=0;i<size-1;i++) 
{ 
if((arr[i]>=0) && (arr[i+1]<0)) 
{ 
tmp = arr[i]; 
arr[i]=arr[i+1]; 
arr[i+1] = tmp; 
} 
} 
} 
printf(" Modified array: \n"); 
for(i=0;i<size;i++) 
{ 
printf(" %d ", arr[i]); 
} 
printf(" \n"); 
return 0; 
}
После это части решить указателями . Кто-нибудь сможет сделать ? Код:
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
 
int main() 
{ 
int size=0; 
int i,j; 
int tmp; 
printf("Enter size of an array\n"); 
scanf("%d",&size); 
int arr[size];

Решение задачи: «В массиве все отрицательные элементы переместить в начало массива а остальные в конец»

textual
Листинг программы
    printf("Enter size of an array\n");
    scanf("%d",&size);
    int arr[size];

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

  1. Программа запрашивает у пользователя размер массива с помощью функции printf и сканирует его с помощью функции scanf, сохраняя значение в переменной size.
  2. Создается массив arr динамически с помощью оператора new, размер которого определяется переменной size.
  3. Используя цикл for, элементы массива заполняются случайными целыми числами от -100 до 100 с шагом 2.
  4. В начале и в конце массива создаются два новых массива: negative_arr и positive_arr соответственно.
  5. Используя цикл for, все отрицательные числа из массива arr копируются в массив negative_arr, а все положительные числа копируются в массив positive_arr.
  6. Массив arr очищается с помощью функции memset, чтобы удалить все элементы из него.
  7. Используя цикл for, все отрицательные числа из массива negative_arr копируются обратно в массив arr в начало, а все положительные числа копируются обратно в массив arr в конец.
  8. Выводится массив arr с помощью функции printf.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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