Отсортировать массив по убыванию значений элементов - C (СИ)

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

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

Определить массив из 50 вещественных чисел: x[i] = 10*Cos( i/10), i= 1, 2, . . . 50. Отсортировать массив по убыванию значений элементов. Вывести массивы до и после сортировки.

Решение задачи: «Отсортировать массив по убыванию значений элементов»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
#define N 51
 
void swap(float& f1, float& f2)
{
    float temp = f1; f1 = f2; f2 = temp;
}
 
int main(int argc, char** argv)
{
    float arr[N] = { 0 };
    for (int i = 0; i < N; i++)
    {
        arr[i] = 10 * cos(i / 10);
        printf("%4.2f ", arr[i]);
    }
 
    printf("\n\n");
 
    for (int i = 0; i < N; i++)
    {
        int max_i = i;
        for (int j = i + 1; j < N; j++)
            max_i = (arr[j] > arr[max_i]) ? j : max_i;
 
        swap(arr[i], arr[max_i]);
    }
 
    for (int i = 0; i < N; i++)
        printf("%4.2f ", arr[i]);
 
    printf("\n");
 
    _getch();
 
    return 0;
}

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

Код представлен на языке C и решает задачу сортировки массива по убыванию значений элементов.

  1. Первые три строки определяют используемые библиотеки, стандартные входы и выходы, а также константу N, определяющую размер массива.
  2. Следующая строка определяет функцию swap, которая меняет местами два числа с помощью временной переменной.
  3. Строки с 11 по 26 формируют массив arr и выводят его значения на экран.
  4. Строка 27 добавляет двойной пробел в начало следующего вывода.
  5. Строки с 28 по 41 реализуют алгоритм сортировки пузырьком, начиная с текущего элемента и двигаясь вправо до тех пор, пока не будет найден элемент, меньший текущего. Затем происходит обмен текущего элемента с этим меньшим элементом.
  6. Строки с 42 по 57 выводят отсортированный массив на экран.
  7. Строка 58 ожидает нажатия клавиши для завершения работы программы.
  8. Строка 59 возвращает 0, обозначая успешное завершение работы программы.

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


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

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

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