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

Составить рекурсивную процедуру нахождения максимального элемента в массиве - C++

Восстановить пароль Регистрация
 
everthinq
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 16
15.02.2014, 21:45     Составить рекурсивную процедуру нахождения максимального элемента в массиве #1
3. Составить рекурсивную процедуру нахождения максимального элемента в массиве.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2014, 21:45     Составить рекурсивную процедуру нахождения максимального элемента в массиве
Посмотрите здесь:

C++ Процедура (Составить процедуру для нахождения макс. элемента матрицы)
C++ Составить функцию нахождения максимального элемента Мх в диагонали матрицы, параллельной главной диагонали
C++ Составить функцию нахождения максимального элемента
C++ Составить функцию нахождения максимального элемента в диагонали матрицы, параллельной главной диагонали
C++ Шаблон нахождения максимального элемента в массиве
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Eldies
89 / 80 / 28
Регистрация: 06.02.2014
Сообщений: 119
16.02.2014, 01:22     Составить рекурсивную процедуру нахождения максимального элемента в массиве #2
C++
1
2
3
4
5
6
int getMaxFromArray(int* arr, int n)
{
    if (n == 1)
        return arr[0];
    return std::max(arr[n-1], getMaxFromArray(arr, n - 1) );
}
petyahohlov
27 / 22 / 5
Регистрация: 31.07.2013
Сообщений: 119
16.02.2014, 02:26     Составить рекурсивную процедуру нахождения максимального элемента в массиве #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Eldies Посмотреть сообщение
C++
1
2
3
4
5
6
int getMaxFromArray(int* arr, int n)
{
    if (n == 1)
        return arr[0];
    return std::max(arr[n-1], getMaxFromArray(arr, n - 1) );
}
не мог бы ты обьяснить что это значит?

return std::max(arr[n-1], getMaxFromArray(arr, n - 1) )

ну return возращает значение, это я знаю а остальное
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,283
16.02.2014, 03:28     Составить рекурсивную процедуру нахождения максимального элемента в массиве #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Интересная задача, я бы сделал так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstddef>
#include <algorithm>
 
template <typename T, std::size_t n>
const T& find_max( const T( &arr )[ n ] ) {
  const T& head = arr[ 0 ];
  const T( &tail )[ n - 1 ] = reinterpret_cast<const T( & )[ n - 1 ]>( *( &arr[0] + 1 ) );
  return std::max( head, find_max( tail ) );
}
 
template <typename T>
const T& find_max( const T( &arr )[ 1 ] ) {
  return arr[ 0 ];
}
 
 
int main() {
  int data[] = { 1, 10, 3, 4, 5 };
  int result = find_max( data );
  return 0;
}
Eldies
89 / 80 / 28
Регистрация: 06.02.2014
Сообщений: 119
16.02.2014, 09:46     Составить рекурсивную процедуру нахождения максимального элемента в массиве #5
petyahohlov, если в массиве 1 элемент - вернуть его.
иначе - вернуть std::max(arr[n-1], getMaxFromArray(arr, n - 1) );

std::max(a, b) - функция, возвращающая бОльшее из двух чисел
arr[n-1] - последний элемент массива
getMaxFromArray(arr, n - 1) - рекурсивный вызов функции для всех элементов массива кроме последнего
Yandex
Объявления
16.02.2014, 09:46     Составить рекурсивную процедуру нахождения максимального элемента в массиве
Ответ Создать тему
Опции темы

Текущее время: 08:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru