Как отсортировать массив целых рандомных чисел по негативным и позитивным числам? - C (СИ)

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

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

Условия задачи. Нужно создать массив целых чисел размером в 100 элементов. Они заполняются рандомно от -100 до 100.Это я знаю.А вот дальше нужно все позитивные элементы разместить в левой части массива,а негативные( с минусом) в правой.А нули между ними.
#include "stdafx.h" 
  #include <stdio.h>
 
      void main(void)
      {
 int a[100];
randomize();
for (int i = 0 ; i < 100 ; i++)
    a[i]=random(100)-100; // случайное число [-100;100]; 
 return 0;
      }

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define HUNDRED_NUMBERS (20)
#define LOW (-10)
#define HI (10)
#define bounded_rand() ( rand() % ( HI - LOW + 1 ) + LOW )
 
int cmp(const void * pA, const void * pB) {
    int a = *(int*)pA;
    int b = *(int*)pB;
    
    if ( a > 0 )
        return -1 * ( b <= 0 );
    else if ( b > 0 )
        return 1;
    else if ( a == 0 )
        return -1 * ( b < 0 );
    else
        return ( b == 0 );
    
}
 
void fill(int * array, size_t count) {
    while ( count-- )
        *array++ = bounded_rand();
}
 
void dump(int * array, size_t count) {
    while ( count-- )
        printf("%d%c", *array++, ( count ) ? ' ' : '\n');
}
 
int main(void) {
    int array[HUNDRED_NUMBERS];
    
    srand(time(NULL));
    
    fill(array, HUNDRED_NUMBERS);
    dump(array, HUNDRED_NUMBERS);
    qsort(array, HUNDRED_NUMBERS, sizeof(int), cmp);
    dump(array, HUNDRED_NUMBERS);
    
    return 0;
}

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

Вот что делает этот код:

  1. #include — подключает необходимые функции для работы с консолью
  2. #include — подключает функции для работы с памятью и сортировкой
  3. #include — подключает функции для работы со временем
  4. #define HUNDRED_NUMBERS (20) — определяет количество чисел в массиве (20)
  5. #define LOW (-10) — определяет нижнюю границу для генерации случайных чисел
  6. #define HI (10) — определяет верхнюю границу для генерации случайных чисел
  7. bounded_rand() — функция для генерации случайного числа в заданном диапазоне [-10, 10]
  8. int cmp(const void pA, const void pB) — функция сравнения для сортировки массива
  9. *void fill(int array, size_t count)** — функция для заполнения массива случайными числами
  10. *void dump(int array, size_t count)** — функция для вывода содержимого массива на консоль
  11. int main(void) — точка входа в программу
  12. int array[HUNDRED_NUMBERS] — объявление массива для хранения 20 чисел
  13. srand(time(NULL)) — инициализация генератора случайных чисел текущим временем
  14. fill(array, HUNDRED_NUMBERS) — заполнение массива случайными числами
  15. dump(array, HUNDRED_NUMBERS) — вывод содержимого массива на консоль
  16. qsort(array, HUNDRED_NUMBERS, sizeof(int), cmp) — сортировка массива с помощью функции qsort и сравнения в функции cmp
  17. dump(array, HUNDRED_NUMBERS) — вывод отсортированного массива на консоль
  18. return 0; — завершение программы

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


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

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

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