0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 16
1

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

15.02.2014, 21:45. Показов 1729. Ответов 4
Метки нет (Все метки)

3. Составить рекурсивную процедуру нахождения максимального элемента в массиве.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2014, 21:45
Ответы с готовыми решениями:

Составить процедуру для нахождения индексов максимального элемента квадратной матрицы
помогите с задачей! Составить процедуру для нахождения индексов максимального элемента квадратной...

Составить процедуру для нахождения максимального и минимального по модулю элемента одномерного массива A
Здравствуйте. Срочно нужна помощь по данной программе. Составить процедуру для нахождения...

Составить программу нахождения минимального (максимального) элемента массива и места его расположения в массиве
помогите пожалуйста выполнить работу Составить программу нахождения минимального (максимального)...

Разработать рекурсивную функцию нахождения максимального элемента последовательности
Разработать рекурсивную функцию нахождения максимального элемента данной последовательности а1, а2,...

4
92 / 84 / 40
Регистрация: 06.02.2014
Сообщений: 122
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) );
}
1
27 / 22 / 13
Регистрация: 31.07.2013
Сообщений: 121
16.02.2014, 02:26 3
Лучший ответ Сообщение было отмечено everthinq как решение

Решение

Цитата Сообщение от 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 возращает значение, это я знаю а остальное
1
710 / 282 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
16.02.2014, 03:28 4
Лучший ответ Сообщение было отмечено everthinq как решение

Решение

Интересная задача, я бы сделал так:

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;
}
1
92 / 84 / 40
Регистрация: 06.02.2014
Сообщений: 122
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) - рекурсивный вызов функции для всех элементов массива кроме последнего
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2014, 09:46
Помогаю со студенческими работами здесь

Составить программу нахождения максимального отрицательного элемента матрицы и нахождения его местоположения
Дана вещественная матрица A(N,M). Составить программу нахождения максимального отрицательного...

Описать рекурсивную процедуру нахождения в массиве произведения и количества положительных элементов
Не могу понять как сделать это в рекурсивном виде, помогите пож. Добавлено через 45 секунд...

Написать процедуру нахождения максимального элемента массива из 10 целых чисел
Написать процедуру нахождения максимального элемента массива из 10 целых чисел. Применить данную...

Написать процедуру нахождения максимального элемента массива из 10 целых чисел
Написать процедуру нахождения максимального элемента массива из 10 целых чисел. Применить данную...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru