Упорядочить буквы введенного текста по алфавиту (пузырьковая сортировка) - 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, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д