Строка: Подсчитать количество слов в заданной последовательности. - C (СИ)
Формулировка задачи:
Даны натуральное число n, символы S1, ...,Sn. Группы символов, разделенные пробелами (одним или не-сколькими) и не содержащие пробелов внутри себя, будем называть словами. Подсчитать количество слов в данной последовательности.
Решение задачи: «Строка: Подсчитать количество слов в заданной последовательности.»
textual
Листинг программы
int flag=0, k=0, i;
for(i=0; i<n; i++)
if (flag==0) {
if S[i] == ' ') continue;
else {
k++;
flag = 1;
}
}
else {
if (S[i]==' ') flag = 0;
}
}
printf ("%d слов\n");
Объяснение кода листинга программы
- Переменная
flagинициализируется значением 0. - Переменная
kинициализируется значением 0. - Переменная
iне инициализируется, она используется как счетчик в цикле. - Цикл выполняется, пока значение переменной
iменьше значения переменнойn. - Внутри цикла проверяется значение переменной
flag. Если оно равно 0, то выполняется следующий блок кода. - В блоке кода проверяется, равно ли значение переменной
S[i]значению пробела (' '). Если да, то код пропускает этот пробел и продолжает работу со следующим символом. - Если значение переменной
S[i]не равно значению пробела, то выполняется следующий блок кода. - В блоке кода переменная
kувеличивается на 1. - Значение переменной
flagменяется на 1. - Если значение переменной
flagравно 1, то выполняется следующий блок кода. - В блоке кода проверяется, равно ли значение переменной
S[i]значению пробела. Если да, то значение переменнойflagменяется на 0, чтобы указать на окончание предыдущего слова. - После окончания цикла выполняется команда
printf, которая выводит количество слов на экран. - Количество слов вычисляется путем вычитания значения переменной
kиз значения переменнойn. - Команда
printfвыводит строку%d слов\n, где%d- это заполнитель, который заменяется на количество слов, аслов- это текст, который выводится на экран.