Подсчет количества слов, начинающихся с заданной буквы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вот программа, которая обрабатывает последовательность символов, и если новое слово начинается с k то счетчик++. но у меня оператор switch не хочет присваивать значение 1 переменной razdel (если символ-разделитель) <code>
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #define DA 1
  5. #define NET 0
  6. int main()
  7. {
  8. int razdel, nextSym,sym,kol;
  9. kol=0;
  10. sym=getchar();
  11. while ((nextSym=getchar())!=EOF)
  12. {
  13. switch ( sym )
  14. {
  15. case ' ':
  16. {razdel=DA;}
  17. case '\n':
  18. {razdel=DA;}
  19. case '\t':
  20. {razdel=DA;}
  21. default:
  22. {razdel=NET;}
  23. }
  24. printf ("%d",razdel);
  25. if ((razdel==DA) && (nextSym=='k'))kol++;
  26. sym=nextSym;
  27. }
  28. printf ("%d\n",kol);
  29. printf ("Good job, very good job...");
  30. return 0;
  31. }
</code> и если добавить printf ("%d",razdel) после свитч, можно увидеть, что даже когда вводишь пробел то значение разделителя остается 0.

Решение задачи: «Подсчет количества слов, начинающихся с заданной буквы»

textual
Листинг программы
  1.         switch ( sym )
  2.         {
  3.             case ' ':
  4.                 razdel=DA;
  5.                 break;
  6.             case '\n':
  7.                 razdel=DA;
  8.                 break;
  9.             case '\t':
  10.                 razdel=DA;
  11.                 break;
  12.             default:
  13.                 razdel=NET;
  14.         }

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

В данном коде на языке C выполняется следующая задача — подсчет количества слов, начинающихся с заданной буквы. Приведенный код реализует функцию, которая принимает на вход символ и в зависимости от его значения устанавливает переменную razdel в одно из двух возможных значений — DA или NET. Список изменений, которые происходят в коде:

  1. В случае если символ равен пробелу, переменной razdel присваивается значение DA.
  2. В случае если символ равен символу новой строки (перевод строки), переменной razdel присваивается значение DA.
  3. В случае если символ равен табуляции (символTab), переменной razdel присваивается значение DA.
  4. Во всех остальных случаях переменной razdel присваивается значение NET. Обратите внимание, что в данном коде не учитываются знаки препинания и цифры. Для корректного подсчета слов, начинающихся с заданной буквы, необходимо добавить дополнительные условия, которые будут учитывать эти случаи.

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


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

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

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы