Форум программистов, компьютерный форум, киберфорум
Fortran
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 05.04.2020
Сообщений: 1
1

Найти в последовательности количество чисел, идущих подряд, равных между собой

05.04.2020, 21:31. Показов 1113. Ответов 5

Author24 — интернет-сервис помощи студентам
Даны 20 чисел, образующие неубывающую последовательность. Несколько
чисел, идущие подряд, равны между собой. Найти количество таких чисел.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2020, 21:31
Ответы с готовыми решениями:

Найти в массиве последовательности из идущих подряд трех равных между собой элементов, и удалить два из них
Задача: Дан массив а1,...,а50. Найти в нем последовательности из идущие подряд трех равных между...

Найти количество чисел, равных между собой, в неубывающей последовательности
Помогите пожалуйста Дана непустая последовательность вещественных чисел, оканчивающаяся числом...

Удалить последовательность из идущих подряд 3х равных между собой элементов. (Исправить ошибку)
#include <stdio.h> #include <math.h> #include <stdlib.h> void main() { int...

В неубывающей последовательности найти количество равных между собой элементов
В массиве из 20 элементов числа образуют неубывающую последователь-ность. Несколько элементов,...

5
155 / 135 / 9
Регистрация: 21.10.2012
Сообщений: 413
12.04.2020, 23:32 2
Для простоты тестирования сделал програмку
для последовательности чисел в массиве из 10 элементов.
Если вопрос актуален, массив можно сделать на 20 чисел,
объявив integer, parameter :: N = 20
и инициализовав массив arr
любым удобным способом.
Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
program test
  implicit   none
    integer, parameter :: N  = 10
    integer :: k, x, i, j
    integer, dimension(N) :: arr
    arr = (/1,2,3,4,4,4,5,6,7,8/)    
    k = 0 ! здесь копим длину последовательности одинаковых чисел
    i = 1
    buscar: do while( i < N+1 )
      x = k
      j = i + 1
      count_k: do while( j < N+1 )
                 if( arr(i) == arr(j) ) then
                     k = k + 1
                     j = j + 1
                     ! write (*,*) 'k = ', k                    
                 else
                     exit count_k ! покинуть цикл
                 end if                 
               end do count_k
      if( k /= x ) then
          k = k + 1
          i = i + k - x
      else
          i = i + 1
      end if
    end do buscar
    write (*,*) 'Плато = ', k
end program test
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,640
Записей в блоге: 13
13.04.2020, 07:22 3
Что-то слишком навернуто. Не проще ли так:

Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program test
  implicit   none
    integer, parameter :: N  = 15
    integer :: i,k
    integer, dimension(N) :: arr
    arr = (/1,2,3,4,4,4,4,4,5,6,7,8,9,10,11/)
    k=1
    do i=2,N
       if (arr(i)==arr(i-1)) then
          k=k+1
       end if
    end do   
    write (*,*) 'Плато = ', k
end program test
1
155 / 135 / 9
Регистрация: 21.10.2012
Сообщений: 413
13.04.2020, 07:56 4
Проще
0
WH
1577 / 807 / 189
Регистрация: 10.09.2013
Сообщений: 3,197
Записей в блоге: 3
13.04.2020, 14:33 5
Можно чуть модернизировать, на случай, если повторяющихся чисел нет.
Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program test
  implicit   none
    integer, parameter :: N  = 15
    integer :: i,k
    integer, dimension(N) :: arr
    logical :: l = .false.
    arr = (/1,2,3,14,15,16,4,4,5,6,7,8,9,10,11/)
    k=1
    do i=2,N
       if (arr(i)==arr(i-1)) then
          k=k+1
          l=.true.
       end if
    end do   
    if (l) then
        write (*,*) 'Плато = ', k
    else
        write (*,*) 'Плато = ', k-1
    end if  
end program test
Может и матричные операции есть? Лень искать.
1
155 / 135 / 9
Регистрация: 21.10.2012
Сообщений: 413
13.04.2020, 15:13 6
По условию автора вопроса,
последовательность одинаковых чисел
в наличии, так я и не заморачивался.
Тем не менее, при отсутствии такой последовательности,
програмка выдает: Плато = 0
0
13.04.2020, 15:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2020, 15:13
Помогаю со студенческими работами здесь

Несколько элементов, идущих подряд, равны между собой - найти количество таких элементов
В массиве из 20 элементов числа образуют неубывающую последовательность .Несколько элементов ,...

Найти максимальное число идущих подряд равных элементов последовательности
Дана последовательность натуральных чисел, завершающаяся числом 0. Определите, какое наибольшее...

Найти длину самой длиной последовательности подряд идущих элементов равных нулю
Задан числовой масив . Найти длину самой длиной последовательности подряд идущих элементов равных...

Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю
Задан одномерный массив. Найти длину самой длинной последовательности подряд идущих элементов...

Подсчитать количество различных чисел массива, не равных между собой
1) Дан массив с , подсчитать количество различных чисел, не равных между собой

Даны натуральное число n и целые числа a1, a2, ., . an. Найти количество пар "соседних" чисел, равных между собой
Даны натуральное число n и целые числа a1, a2, ..., . an. Найти количество пар &quot;соседних&quot; чисел,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru