Упорядочить в порядке возрастания первые N элементов массива - C (СИ)
Формулировка задачи:
Задано массив чисел Q(y). Определить количество N отрицательных элементов массива и упорядочить в порядке возрастания первые N элементов массива. Если невозможно сделать это, выдать сообщение
Решение задачи: «Упорядочить в порядке возрастания первые N элементов массива»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int arr[] = {5,4,3,2,1,-6, -5,-4, 12 ,8}; void show(const int* arr, int arr_lenght){ printf("array = "); for ( int i = 0; i < arr_lenght ; i++){ printf("%d ",arr[i]); } printf("\n"); } int count_negative(const int* arr, int arr_lenght){ int number_of_negative = 0; for ( int i = 0; i < arr_lenght ; i++){ if (arr[i] < 0) { number_of_negative += 1; } //number_of_negative += (arr[i] < 0) ? 1 : 0 ; // it's better way; } printf("Count of negative = %d.\n", number_of_negative); return number_of_negative; } int compare (const void * a, const void * b){ //need for qsort. return ( *(int*)a - *(int*)b ); } void partial_sort_for_int_array(int* arr, int num){ // from stdlib.h qsort(arr, num, sizeof(int), compare); } int main(void) { int len = sizeof(arr)/sizeof(int); show(arr, len); int number_of_negative = count_negative(arr, len); partial_sort_for_int_array(arr, number_of_negative); show(arr,len); return 0; }
Объяснение кода листинга программы
- В начале кода объявляется массив arr[] с шестью положительными и двумя отрицательными числами.
- Затем определены функции: — show(const int arr, int arr_lenght) — для вывода элементов массива в консоль. — count_negative(const int arr, int arr_lenght) — для подсчета отрицательных чисел в массиве. — compare(const void a, const void b) — для сортировки массива по возрастанию (для использования в функции qsort из библиотеки stdlib.h). — partial_sort_for_int_array(int* arr, int num) — для частичной сортировки массива по возрастанию (также использует функцию qsort).
- В функции main() сначала вычисляется длина массива len, затем выводится содержимое массива с помощью функции show().
- После этого вызывается функция count_negative(), которая подсчитывает количество отрицательных чисел в массиве, и сохраняет это значение в переменной number_of_negative.
- Затем вызывается функция partial_sort_for_int_array(), которая сортирует первые number_of_negative элементов массива по возрастанию.
- Наконец, выводится отсортированный массив с помощью функции show().
- Программа завершается возвратом значения 0 из функции main(), что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д