Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2012, 00:41   #1
Александрq
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 27
По умолчанию задача на массив (Си)

Препод задал задачу, но я не понимаю даже условия. Определить длину наибольшей последовательности одинаковых чисел в массиве А(50) и вывести на экран значение элементов, из которых она состоит, индексы начального и конечного элементов этой последовательности. Можете объяснить, что надо сделать в этой задаче, какая суть?
Александрq вне форума Ответить с цитированием
Старый 29.11.2012, 01:00   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

дан одномерный массив А состоящий из 50 элементов. Нужно определит наибольшую длину одинаковых чисел в этом массиве (максимальное количество одинаковых элементов идущих подряд: 4 5 6 4 4 4 9 9 9 9 2 4 6 : тут будет 4 подряд идущих девятки) и вывести на экран значение элементов (в примере это девятка) + вывести индексы массива с которых начинается эта последовательность и на котором заканчивается ( начинается с седьмого элемента в примере - индекс 6 , заканчивается на 10 элементе индекс 9. )
p.s. в Си индексы массивов начинаются с нуля.
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 29.11.2012, 01:56   #3
Александрq
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 27
По умолчанию

спасибо, а нужно ли при этом сортировать элементы массива?? и еще вопрос: чтобы определить элементы идущие подряд нужно каждый сравнить друг с другом и проверить индексы, так вроде?
Александрq вне форума Ответить с цитированием
Старый 29.11.2012, 12:50   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

по поводу сортировки - думаю наврятли... т.к. можно было задание сделать иным, мол вывести наибольшее количество повторяющих элементов или что-то подобное... так что если в условии не написано про сортировку - то лучше не стоит ее делать...
а по поводу реализации вот пример (с++, в прицнипе будет близко к Си):
Код:
n = 1; // максимальная длинна предыдущей серии
n_s = 1; // начало предыдущей серии
n_f = 1; // конец предыдущей серии
n_s_t = 1; //начало новой серии
n_t = 1; // длинна текущей серии

for (i = 2; i < 50; i++)
{
  if (a[i - 1] == a[i]) // если серия продолжается
   {
     n_t++;
     n_f_t = i;
     if (n_t > n) // если текущая серия больше предыдущей
      {
         n = n_t;
         n_s = n_s_t;
         n_f = n_f_t;  
      }
   }
   else // если серия прерывается, начинается новая
    {
     n_t = 1;
     n_s_t = i;
     n_f_t = i;
    }
}
p.s. не компилил...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на массив MrRifleman Общие вопросы C/C++ 2 01.04.2012 13:55
задача на массив diamn3452 Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2011 18:07
Задача на Массив Uoga Паскаль, Turbo Pascal, PascalABC.NET 1 17.05.2011 18:57
Задача на массив Jack125 Помощь студентам 1 13.11.2010 18:23
задача на массив Vali_T Помощь студентам 1 05.06.2009 10:15