Подсчет количества слов, состоящих только из буквы 'a' - C (СИ)
Формулировка задачи:
Есть программа подсчета количества слов с буквой 'a', какое условие добавить, чтобы был подсчет слов, состоящих только из буквы 'a' ???
#include <stdio.h>
void main()
{
char s[80] = "adds ewgfd sdd a";
int i = 0, count = 0, flag = 0;
while (s[i] != '\0')
{
if (s[i] == 'a')
flag = 1;
if (s[i] == ' '&&flag == 1)
{
count++;
flag = 0;
}
i++;
}
if (flag == 1 && s[i] == '\0')
count++;
printf("%d\n", count);
}Решение задачи: «Подсчет количества слов, состоящих только из буквы 'a'»
textual
Листинг программы
flag = 1;
while (s[i] != '\0'){
if (s[i] != 'a')
if (s[i] == ' '){
if (flag == 1) count++;
flag = 1;
} else flag = 0;
i++;
}
Объяснение кода листинга программы
- Переменная
flagинициализируется значением 1. - В цикле while происходит проход по всем символам строки
s. - Если текущий символ не равен 'a', то проверяется, является ли он пробелом.
- Если текущий символ - пробел и переменная
flagравна 1, то значение переменнойcountувеличивается на 1. - После увеличения значения переменной
count, значение переменнойflagсбрасывается в 0. - Если текущий символ - пробел и переменная
flagравна 0, то значение переменнойflagсбрасывается в 1. - Значение переменной
iувеличивается на 1 после каждой итерации цикла. - Цикл while выполняется до тех пор, пока не будет достигнут конец строки (символ '\0').