Дана последовательность из n символов. Подсчитать наибольшее число букв 'a' идущих подряд - C (СИ)
Формулировка задачи:
4,1 Дана последовательность из n символов. Подсчитать наибольшее число
букв 'a' идущих подряд в данной последовательности
Решение задачи: «Дана последовательность из n символов. Подсчитать наибольшее число букв 'a' идущих подряд»
textual
Листинг программы
#include <stdio.h>
int main(void){
char str[]="abc-bla (aaa), xyz, aaaaaaa";
int i,sch,max;
max=1;
sch=1;
for (i=0; str[i]!='\0'; i++)
if (str[i]==str[i+1]&&str[i]=='a')
{
sch++;
if (sch>max) max=sch;
}
else
sch=1;
printf("%d",max);
return(0);
}
Объяснение кода листинга программы
В этом коде:
- Объявляются переменные:
str- строка символов, в которой нужно найти наибольшее количество букв 'a', идущих подряд.i- счётчик, используемый в цикле.sch- счётчик, используемый для подсчёта количества букв 'a', идущих подряд.max- переменная, в которой будет храниться максимальное количество букв 'a', идущих подряд.
- Устанавливается начальное значение
maxравным 1, так как по умолчанию считается, что любое количество букв 'a', идущих подряд, меньше 1. - Устанавливается начальное значение
schравным 1, так как при первом встречном символе 'a' счётчик будет сбрасываться в 1. - Запускается цикл по всем символам строки
str. - Внутри цикла проверяется, является ли текущий символ 'a', и если да, то проверяется, идут ли подряд ещё буквы 'a'. Если да, то счётчик
schувеличивается на 1, и если это значение больше текущего значенияmax, тоmaxобновляется значениемsch. - Если текущий символ не 'a', то счётчик
schсбрасывается в 1. - После окончания цикла, с помощью функции
printfвыводится значение переменнойmax. - Возвращается 0, что означает успешный конец работы программы.