Переставить числа последовательности таким образом, чтобы в начале этой последовательности оказались все положительные числа, а в конце отрицательные - 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). Список действий:

  1. Создаётся функция cmp, которая будет использоваться в качестве аргумента для функции qsort. Эта функция сравнивает два указателя на int и возвращает значение, которое определяет порядок следования этих двух int в отсортированной последовательности.
  2. Определяется константа SIZE для представления размера массива.
  3. Создаётся функция dump, которая используется для вывода значений массива. Она принимает три аргумента: указатель на первый элемент массива, размер массива и строку формата, которая будет использоваться при выводе.
  4. В функции main создаётся массив array размером SIZE.
  5. Инициализируется генератор случайных чисел с помощью функции srand(time(0u)).
  6. В цикле заполняется массив array случайными числами с помощью функции rand() % 21 - 10.
  7. Выводится содержимое массива с помощью функции dump и символа перевода строки \n.
  8. Массив array сортируется с помощью функции qsort с использованием функции cmp в качестве аргумента.
  9. Выводится отсортированный массив с помощью функции dump и символа перевода строки \n.
  10. Программа возвращает 0, что означает успешное завершение работы.

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


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

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

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