Поставить слова предложения в алфавитном порядке, найти ошибку - 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]);
}

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

  1. Включаем необходимые заголовочные файлы для работы с C
  2. Устанавливаем русскую локаль для работы с русским языком
  3. Объявляем переменные:
    • str - строка, содержащая предложение для обработки
    • slova - массив, в который будут добавляться слова из исходной строки
    • men - массив, используемый для временного хранения слов при сортировке
  4. Задаем начальные значения переменных i и j равными 0
  5. Запускаем цикл, который будет перебирать символы исходной строки
    • Если текущий символ не пробел, то добавляем его в массив slova
    • Если текущий символ является пробелом, то увеличиваем значение переменной j на 1 и продолжаем выполнение цикла с следующей итерации
  6. Запускаем цикл, который будет перебирать слова в массиве slova
    • Если текущее слово больше следующего слова, то меняем их местами
  7. Запускаем цикл, который будет выводить отсортированные слова на экран
  8. Условие выхода из циклов - когда встречается символ '\0', обозначающий конец строки или массива
  9. Выводим отсортированные слова на экран, разделяя их пробелами

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


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

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

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