Найти максимальное число идущих подряд равных элементов последовательности - C (СИ)
Формулировка задачи:
Дана последовательность натуральных чисел, завершающаяся числом 0. Определите, какое наибольшее число подряд идущих элементов этой последовательности равны друг другу.
Решение задачи: «Найти максимальное число идущих подряд равных элементов последовательности»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,t,fib,nom,flag,otv,max;
otv=1;
max=-1;
b=1;
scanf("\n%d", &a);
if (a==0) printf("\n0");
else
{
while (b!=0)
{
scanf("\n%d",&b);
if (a==b) otv+=1;
else
{
if (otv>max) max=otv;
otv=1;
};
a=b;
};
};
if (max==-1||max==1) printf("1\n");
else
printf("\n%d", max);
}
Объяснение кода листинга программы
В этом коде задача найти максимальное количество одинаковых элементов подряд в последовательности. Список действий:
- Объявляются переменные: a, b, t, fib, nom, flag, otv, max.
- Переменная otv устанавливается равной 1, а переменная max равной -1.
- Переменная b устанавливается равной 1.
- С помощью функции scanf считывается значение переменной a.
- Если a равно 0, то выводится 0.
- В противном случае начинается цикл while, который выполняется до тех пор, пока b не станет равным 0.
- Внутри цикла с помощью функции scanf считывается значение переменной b.
- Если a равно b, то к переменной otv прибавляется 1.
- Если a не равно b, то проверяется, является ли значение otv больше значения max.
- Если это так, то max присваивается значение otv.
- Затем otv устанавливается равным 1, a присваивается значение b, и цикл продолжается.
- После выхода из цикла, если max равно -1 или 1, выводится 1.
- В противном случае выводится значение max.