Подсчет количества слов, начинающихся с заданной буквы - C (СИ)
Формулировка задачи:
Вот программа, которая обрабатывает последовательность символов, и если новое слово начинается с k то счетчик++. но у меня оператор switch не хочет присваивать значение 1 переменной razdel (если символ-разделитель)
<code>
</code>
и если добавить printf ("%d",razdel) после свитч, можно увидеть, что даже когда вводишь пробел то значение разделителя остается 0.
#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;
}Решение задачи: «Подсчет количества слов, начинающихся с заданной буквы»
textual
Листинг программы
switch ( sym )
{
case ' ':
razdel=DA;
break;
case '\n':
razdel=DA;
break;
case '\t':
razdel=DA;
break;
default:
razdel=NET;
}
Объяснение кода листинга программы
В данном коде на языке C выполняется следующая задача — подсчет количества слов, начинающихся с заданной буквы. Приведенный код реализует функцию, которая принимает на вход символ и в зависимости от его значения устанавливает переменную razdel в одно из двух возможных значений — DA или NET.
Список изменений, которые происходят в коде:
- В случае если символ равен пробелу, переменной
razdelприсваивается значение DA. - В случае если символ равен символу новой строки (перевод строки), переменной
razdelприсваивается значение DA. - В случае если символ равен табуляции (символTab), переменной
razdelприсваивается значение DA. - Во всех остальных случаях переменной
razdelприсваивается значение NET. Обратите внимание, что в данном коде не учитываются знаки препинания и цифры. Для корректного подсчета слов, начинающихся с заданной буквы, необходимо добавить дополнительные условия, которые будут учитывать эти случаи.