Определить, есть ли в массиве последовательность из n повторяющихся элементов - VB
Формулировка задачи:
Задан целочисленный массив из 10 элементов
1) определить, есть ли в массиве последовательность из n повторяющихся элементов, стоящих подряд. n пользователь вводит. подводный камень: 3334445551 - n должно быть <=3,однако при неправильном коде(как у меня) выводит,что,допустим, 5 элементов тоже есть
2)
найти в массиве самую длинную последовательность из стоящих подряд одинаковых элементов (вывести значение элемента и номера первого и последнего элементов последовательности)
Листинг программы
- Dim a() As Integer = {3, 3, 3, 4, 4, 4, 5, 5, 5, 1}
- Dim i, count, n As Integer
- count = 0
- Console.WriteLine("Введите кол-во повторяющихся элементов массива:")
- n = Console.ReadLine
- For i = 0 To UBound(a) - 1
- If a(i) = a(i + 1) Then
- count = count + 1
- End If
- Next
- If n <= count Then
- Console.WriteLine("В массиве есть последовательность из " & n & " элементов стоящих подряд")
- Else
- Console.WriteLine("В массиве,увы, нет последовательности из " & n & " элементов стоящих подряд")
- End If
- Console.ReadLine()
массив проинициализированный
Решение задачи: «Определить, есть ли в массиве последовательность из n повторяющихся элементов»
textual
Листинг программы
- CLS
- REM Массив х() 3, 3, 3, 2, 2, 7, 7, 7, 7, 1
- k = 1
- max = x(1)
- FOR i = 1 TO 9
- IF x(i) = x(i + 1) THEN
- k = k + 1
- ELSE
- IF kmax < k THEN
- kmax = k
- max = x(i)
- i1 = i - k + 1
- i2 = i
- END IF
- k = 1
- END IF
- NEXT
- PRINT "max ="; max
- PRINT "i1 ="; i1
- PRINT "i2 ="; i2
- PRINT "kmax ="; kmax
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д