Отсортировать массив по убыванию значений элементов - 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 и решает задачу сортировки массива по убыванию значений элементов.
- Первые три строки определяют используемые библиотеки, стандартные входы и выходы, а также константу N, определяющую размер массива.
- Следующая строка определяет функцию swap, которая меняет местами два числа с помощью временной переменной.
- Строки с 11 по 26 формируют массив arr и выводят его значения на экран.
- Строка 27 добавляет двойной пробел в начало следующего вывода.
- Строки с 28 по 41 реализуют алгоритм сортировки пузырьком, начиная с текущего элемента и двигаясь вправо до тех пор, пока не будет найден элемент, меньший текущего. Затем происходит обмен текущего элемента с этим меньшим элементом.
- Строки с 42 по 57 выводят отсортированный массив на экран.
- Строка 58 ожидает нажатия клавиши для завершения работы программы.
- Строка 59 возвращает 0, обозначая успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д