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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2013, 09:54   #1
redalertgamer
Новичок
Джуниор
 
Регистрация: 07.10.2013
Сообщений: 1
По умолчанию Обработка последовательностей

Ребят, помогите пожалуйста решить задачки в С.
1) Найти длину наибольшего возрастающего участка
2)Каких элементов в последовательности больше: с четными значениями или с нечетными?
3)Является ли последовательность возрастающей, убывающей?
redalertgamer вне форума Ответить с цитированием
Старый 07.10.2013, 10:07   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Основа цикл. Проходишься по массиву циклом и сверяешь с некоторым условием. Результат записываешь в отдельную переменную. Затем выводишь на экран.
Второй самый простой. Ну условие типа такого:
Если массив[i]%2==0 то число четное и надо переменную-счетчик четных чисел увеличить на 1 иначе увеличить на один переменную-счетчик нечетных чисел.
Ну как-то так.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 07.10.2013, 10:15   #3
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Можно на наработки взглянуть???
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 07.10.2013, 11:20   #4
Nuklon
Форумчанин
 
Аватар для Nuklon
 
Регистрация: 05.04.2012
Сообщений: 134
По умолчанию

Цитата:
1) Найти длину наибольшего возрастающего участка
Код:
#include <stdio.h>


int*  maxlen_seq(const int* fe, const int* le, const int** e) {
   const int* p, *t = le;
   int d, n = 0;

   *e = le;
   while(fe != le) {
       for(p = fe; (p + 1 != le) && (*p <= *(p + 1)); ++p);
       if((d = (p - fe)) > n) {
           n  = d;
           t  = fe;
           *e = p + 1;
       }
       ++fe;
   }
   return (int*)t;
}



int  main(void) {
   int arr[] = { 0, 1, -10, 3, 5, 6, 2, 1, 2, 3, 4, 8, -1 };
   const int* a, *b;
	
   a = maxlen_seq(arr, arr + sizeof(arr)/sizeof(arr[0]), &b);
   while(a != b)
       printf("%d ", *a++);
   putchar('\n');
   return 0;
}
Пример работы кода
Nuklon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка последовательностей KATSURANIS Помощь студентам 2 24.04.2012 01:58
обработка числовых последовательностей и последовательная обработка символов Renat(kai) Помощь студентам 3 28.03.2012 23:22