Дан одномерный массив из n целых чисел [0, 2]. Подсчитайте наибольшее число одинаковых идущих подряд в нем чисел. Язык СИ
Не совсем понимаю, где была допущена ошибка. Помогите разобраться и исправить, пожалуйста.
s - считает количество идущих подряд одинаковых чисел max - максимальное количество повторяющихся
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
main()
{
srand(time(NULL));
setlocale(LC_ALL,"");
int n,i=0,rand(),s,max;
printf("Введите размер массива: ");
scanf("%d", &n);
int a[n];
printf("\nСгенерированный массив: ");
for (i=0; i<=n; i++)
{
a[i]= 0 + rand()%3;
printf("%d\t", a[i]);
}
for (i=1; i<=n; i++) //подсчет одинаковых чисел подряд
{
if(a[i-1]==a[i])
{
s++;
s=s+max;
if (s>max)
max=i;
}
}
printf("\nНаибольшее число одинаковых идущих подряд в нем чисел: %d", max);
}
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
if(a[i-1]==a[i])
{
s++;
if (s>max)
max=s;
}
else
s = 1;
И в начале s тоже нужно инициализировать