Переставить числа последовательности таким образом, чтобы в начале этой последовательности оказались все положительные числа, а в конце отрицательные - C (СИ)
Формулировка задачи:
пусть задана последовательность чисел N1, N2, ..., Nk, состоящая из положительных и отрицательных значений. составить блок схему и программу для перестановки чисел последовательности таким образом, чтобы в начале этой последовательности оказались все положительные числа, а в конце отрицательные.
Помогите пожалуйста) Экзаменационная задача(
Решение задачи: «Переставить числа последовательности таким образом, чтобы в начале этой последовательности оказались все положительные числа, а в конце отрицательные»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> int cmp(const void *p1, const void *p2) { return *((const int*)p2) - *((const int*)p1); } #define SIZE 15 void dump(int *ptr, size_t size, const char *fmt) { while (size--) printf(fmt, *ptr++); } int main(void) { int array[SIZE]; int i; srand(time(0u)); for (i = 0; i < SIZE; i++) array[i] = rand() % 21 - 10; dump(array, SIZE, "%d "); putchar('\n'); qsort(array, SIZE, sizeof(int), cmp); dump(array, SIZE, "%d "); putchar('\n'); return 0; }
Объяснение кода листинга программы
В этом коде реализована сортировка массива методом быстрой сортировки (quick sort). Список действий:
- Создаётся функция
cmp
, которая будет использоваться в качестве аргумента для функцииqsort
. Эта функция сравнивает два указателя на int и возвращает значение, которое определяет порядок следования этих двух int в отсортированной последовательности. - Определяется константа
SIZE
для представления размера массива. - Создаётся функция
dump
, которая используется для вывода значений массива. Она принимает три аргумента: указатель на первый элемент массива, размер массива и строку формата, которая будет использоваться при выводе. - В функции
main
создаётся массивarray
размеромSIZE
. - Инициализируется генератор случайных чисел с помощью функции
srand(time(0u))
. - В цикле заполняется массив
array
случайными числами с помощью функцииrand() % 21 - 10
. - Выводится содержимое массива с помощью функции
dump
и символа перевода строки\n
. - Массив
array
сортируется с помощью функцииqsort
с использованием функцииcmp
в качестве аргумента. - Выводится отсортированный массив с помощью функции
dump
и символа перевода строки\n
. - Программа возвращает 0, что означает успешное завершение работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д