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

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

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

Вот программа, которая обрабатывает последовательность символов, и если новое слово начинается с k то счетчик++. но у меня оператор switch не хочет присваивать значение 1 переменной razdel (если символ-разделитель) <code>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define DA 1
#define NET 0
int main()
{
    int razdel, nextSym,sym,kol;
    kol=0;
    sym=getchar();
    while ((nextSym=getchar())!=EOF)
    {
        switch ( sym )
        {
            case ' ':
                {razdel=DA;}
            case '\n':
                {razdel=DA;}
            case '\t':
                {razdel=DA;}
            default:
                {razdel=NET;}
        }
        printf ("%d",razdel);
    if ((razdel==DA) && (nextSym=='k'))kol++;
    sym=nextSym;
    }
    printf ("%d\n",kol);
    printf ("Good job, very good job...");
    return 0;
 
}
</code> и если добавить printf ("%d",razdel) после свитч, можно увидеть, что даже когда вводишь пробел то значение разделителя остается 0.

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

textual
Листинг программы
        switch ( sym )
        {
            case ' ':
                razdel=DA;
                break;
            case '\n':
                razdel=DA;
                break;
            case '\t':
                razdel=DA;
                break;
            default:
                razdel=NET;
        }

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

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

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

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


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

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

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