Как отсортировать массив целых рандомных чисел по негативным и позитивным числам? - 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; }
Объяснение кода листинга программы
Вот что делает этот код:
- #include
— подключает необходимые функции для работы с консолью - #include
— подключает функции для работы с памятью и сортировкой - #include
— подключает функции для работы со временем - #define HUNDRED_NUMBERS (20) — определяет количество чисел в массиве (20)
- #define LOW (-10) — определяет нижнюю границу для генерации случайных чисел
- #define HI (10) — определяет верхнюю границу для генерации случайных чисел
- bounded_rand() — функция для генерации случайного числа в заданном диапазоне [-10, 10]
- int cmp(const void pA, const void pB) — функция сравнения для сортировки массива
- *void fill(int array, size_t count)** — функция для заполнения массива случайными числами
- *void dump(int array, size_t count)** — функция для вывода содержимого массива на консоль
- int main(void) — точка входа в программу
- int array[HUNDRED_NUMBERS] — объявление массива для хранения 20 чисел
- srand(time(NULL)) — инициализация генератора случайных чисел текущим временем
- fill(array, HUNDRED_NUMBERS) — заполнение массива случайными числами
- dump(array, HUNDRED_NUMBERS) — вывод содержимого массива на консоль
- qsort(array, HUNDRED_NUMBERS, sizeof(int), cmp) — сортировка массива с помощью функции qsort и сравнения в функции cmp
- dump(array, HUNDRED_NUMBERS) — вывод отсортированного массива на консоль
- return 0; — завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д