Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что делает эта программка? http://www.cyberforum.ru/cpp-beginners/thread385235.html
#define NN 15 main() {float x1; int kk=0, i; ... /* ввод x1*/ for(i=NN-1; i>0; i--) {if(x1 == 0) kk++; }}
C++ Найти ошибки в крошечной программке main() { float ff = 78.44e-45; double s3 = { e**9, -17.86 }; { double f; ff=exp f; if (f > sqr(PI_2)) } http://www.cyberforum.ru/cpp-beginners/thread385222.html
C++ Найти количество локальных минимумов1|максимумов массива
Дан массив размера N. Найти количество его локальных минимумов1|максимумов2.
C++ Определить количество чисел, меньших n, которые не делятся на 11
Не знаю как решить. Определить количество натуральных чисел меньших n. Которые не делятся на 11. Протестировать на n=10, n=100,n =1000.
C++ Веб-камера http://www.cyberforum.ru/cpp-beginners/thread385171.html
нужно получать изображения с встроенной в ноутбуке веб-камеры и сохранять на диске с определенным интервалом времени. Куда копать???
C++ [C++] Задачи на матрицы Matrix36. Дана целочисленная матрица размера M × N, элементы которой могут принимать значения от 0 до 100. Различные строки матрицы назовем по- хожими, если совпадают множества чисел,... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
29.11.2011, 18:31
Цитата Сообщение от YUTD Посмотреть сообщение
получилось!!!

Добавлено через 2 минуты
ой
Теперь надо решить, что означает "найти максимальную последовательность". Скорей всего мы должны получить две характеристики этой последовательности: индекс ее первого элемента в исходном массиве и длину этой последовательности.
Но из функции мы не можем вернуть два значения одновременно. Функции могут возвращать лишь одно значение. Поэтому есть два варианта. Либо получать результирующие значения через параметры, объявленные как указатели, или ссылки, либо возвращать из функции структуру, содержащую два элемента.

И, сразу не сообразил, есть третий вариант! Возвращать из функции длину максимальной последовательности, а в параметрах в виде указателя передавать начало этой последовательности.

Естественно у нас помимо этого у функции всегда должны присутствовать обязательные два параметра: указатель на исходный массив и его длина.

Реализуем третий вариант

C++
1
int max_sequence( int **result, const int source[], int n );

Первым параметром является указатель на указатель типа int. Через него мы будем возвращать из функции начало подпоследовательности.

Пока определим тело функции в виде "пустышки". То есть будем возвращать исходный массив. А затем тело переделаем.

Итак, вставьте в свой код определение новой функции

C++
1
2
3
4
5
int max_sequence( int **result, const int source[], int n )
{
   *result = source;
   return ( n );
}
А в тело функции main вызов этой функции и вывод на консоль того, что мы получили. А подучим мы тот же самый исходный массив, так как это временная проверка работы функции.

C++
1
2
3
4
5
6
int *start;
int count;
 
count = max_sequence( &start, a, n );
 
display( start, count );
Проверьте, что получилось.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru