Упорядочить буквы введенного текста по алфавиту (пузырьковая сортировка) - C (СИ)
Формулировка задачи:
Нужна программа, в которую вводишь текст и она расставляет буквы по алфавиту (обязательно с помощью пузырьковой сортировки) и выводит на экран с пробелами между группой букв.
Пример:
Ввод: Annulo cingitul tenui, plano, nusquam cohaerente, ad eclipticam inclinato.
Вывод: aaaaaaa cccc d eeeee g h iiiiiii lllll mm nnnnnnnnn oooo pp q r s ttttt uuuuu
Решение задачи: «Упорядочить буквы введенного текста по алфавиту (пузырьковая сортировка)»
textual
Листинг программы
#include <stdio.h> #include <string.h> #define N 255 int main(void) { char A[N] = "Annulo cingitul tenui plano" " nusquam cohaerente ad eclipticam inclinato"; int i, j, c, l; l=strlen(A); for ( i = 0; i < l-1; i++ ) for ( j = l-2; j >= i; j-- ) if ( A[j] > A[j+1]) { c = A[j]; A[j] = A[j+1]; A[j+1] = c; } for(i=0; i < l; ++i) { if(A[i]==' ')continue; printf("%c", A[i]); if(A[i]!=A[i+1])printf(" "); } return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с консолью и строками
- Определяем максимальное количество символов в массиве, которое равно 255
- Задаем исходную строку в массиве типа char, которая содержит текст для сортировки
- Объявляем переменные i, j, c, l типа int, которые будут использоваться в цикле сортировки
- Вычисляем длину строки с помощью функции strlen и сохраняем ее в переменной l
- Используем два вложенных цикла для пузырьковой сортировки строки по алфавиту
- Если текущий символ больше следующего, меняем их местами и запоминаем индекс в переменной c
- После окончания первого цикла удаляем лишние пробелы с помощью цикла for и оператора continue
- Выводим отсортированную строку на экран с помощью функции printf
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д