Поставить слова предложения в алфавитном порядке, найти ошибку - C (СИ)
Формулировка задачи:
#include<stdio.h>
#include<string.h>
main ()
{
char str[100]="Это была",slova[100],men[100];
int i,j;
for (i=0,j=0;str[i]!='\0';i=i+1)
{if (str[i]!=' ')
slova[j]=str[i]; else
{j=j+1;
continue;}}
for (j=0;slova[j]!='\0';j=j+1)
{if (slova[j]>slova[j+1])
{men[100]=slova[j];
slova[j]=slova[j+1];
slova[j+1]=men[100];}}
for (j=0;slova[j]!='\0';j=j+1)
printf("%s ",slova[j]);
}Решение задачи: «Поставить слова предложения в алфавитном порядке, найти ошибку»
textual
Листинг программы
#include<stdio.h>
#include<string.h>
#include<locale.h>
main ()
{
setlocale(LC_ALL,"rus");
char str[100]="Это была сложная задача",slova[100],men[100];
int i,j;
for (i=0,j=0;str[i]!='\0';i=i+1)
{if (str[i]!=' ')
slova[j]=str[i]; else
{j=j+1;
continue;}}
for (j=0;slova[j]!='\0';j=j+1)
{if (slova[j]>slova[j+1])
{men[100]=slova[j];
slova[j]=slova[j+1];
slova[j+1]=men[100];}}
for (j=0;slova[j]!='\0';j=j+1)
printf("%c ",slova[j]);
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с C
- Устанавливаем русскую локаль для работы с русским языком
- Объявляем переменные:
- str - строка, содержащая предложение для обработки
- slova - массив, в который будут добавляться слова из исходной строки
- men - массив, используемый для временного хранения слов при сортировке
- Задаем начальные значения переменных i и j равными 0
- Запускаем цикл, который будет перебирать символы исходной строки
- Если текущий символ не пробел, то добавляем его в массив slova
- Если текущий символ является пробелом, то увеличиваем значение переменной j на 1 и продолжаем выполнение цикла с следующей итерации
- Запускаем цикл, который будет перебирать слова в массиве slova
- Если текущее слово больше следующего слова, то меняем их местами
- Запускаем цикл, который будет выводить отсортированные слова на экран
- Условие выхода из циклов - когда встречается символ '\0', обозначающий конец строки или массива
- Выводим отсортированные слова на экран, разделяя их пробелами