Упорядочить в порядке возрастания первые 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;
}

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

  1. В начале кода объявляется массив arr[] с шестью положительными и двумя отрицательными числами.
  2. Затем определены функции: — 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).
  3. В функции main() сначала вычисляется длина массива len, затем выводится содержимое массива с помощью функции show().
  4. После этого вызывается функция count_negative(), которая подсчитывает количество отрицательных чисел в массиве, и сохраняет это значение в переменной number_of_negative.
  5. Затем вызывается функция partial_sort_for_int_array(), которая сортирует первые number_of_negative элементов массива по возрастанию.
  6. Наконец, выводится отсортированный массив с помощью функции show().
  7. Программа завершается возвратом значения 0 из функции main(), что означает успешное выполнение программы.

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


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

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

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