В массиве все отрицательные элементы переместить в начало массива а остальные в конец - 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];
Объяснение кода листинга программы
- Программа запрашивает у пользователя размер массива с помощью функции printf и сканирует его с помощью функции scanf, сохраняя значение в переменной size.
- Создается массив arr динамически с помощью оператора new, размер которого определяется переменной size.
- Используя цикл for, элементы массива заполняются случайными целыми числами от -100 до 100 с шагом 2.
- В начале и в конце массива создаются два новых массива: negative_arr и positive_arr соответственно.
- Используя цикл for, все отрицательные числа из массива arr копируются в массив negative_arr, а все положительные числа копируются в массив positive_arr.
- Массив arr очищается с помощью функции memset, чтобы удалить все элементы из него.
- Используя цикл for, все отрицательные числа из массива negative_arr копируются обратно в массив arr в начало, а все положительные числа копируются обратно в массив arr в конец.
- Выводится массив arr с помощью функции printf.