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

Рекурсивные функции - C++

Восстановить пароль Регистрация
 
ripazha@
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 10
16.10.2013, 22:33     Рекурсивные функции #1
Написать рекурсивную функцию для вычисления максимального элемента массива из n элементов, цикл не использовать. Показать пример использования.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 22:33     Рекурсивные функции
Посмотрите здесь:

C++ рекурсивные функции
рекурсивные функции C++
C++ Рекурсивные функции
Рекурсивные функции. C++
C++ Рекурсивные и не рекурсивные функции (вычисление суммы всех натуральных чисел от 1 до n)
C++ Рекурсивные функции
Рекурсивные функции C++
Рекурсивные функции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
16.10.2013, 23:26     Рекурсивные функции #2
ripazha@, в рекурсии полный 0, но както наваял))))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <time.h>
using namespace std;
int max(int* arr, int size) {
    if (size==0)
        return *(arr);
    if ( arr[size]>max(arr,size-1) )
        return arr[size];
}
int main()
{
    srand(time(NULL));
    const int size=10;
    int arr[size];
    int i,j,c_odd=0,c_even=0;
    for (i=0;i<size;i++) { 
        arr[i]=rand()%10;
        cout<<arr[i]<<" ";
    } 
    int m=max(arr,size);
    cout<<"\nM="<<m<<"\n";
    system("pause");
    return 0;
}
Hunter13ua
46 / 46 / 5
Регистрация: 25.10.2011
Сообщений: 183
17.10.2013, 00:01     Рекурсивные функции #3
Стоило бы в функции создать переменные int m1 = FindMax(..) и сравнивать их, но если компилятор умеет хорошо оптимизировать, то так будет даже быстрее.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int FindMax(int *array, int len)
{
        return (len == 1) ? *array :
                (FindMax(&array[len/2],len/2) > FindMax(array,len/2))?
                        FindMax(&array[len/2],len/2) : FindMax(array,len/2);
}
int main(int argc, char* argv[])
{
        int a[] = {1,5,3,5,7,2,3};
        cout << FindMax(a,7) << endl;
        cin.get();
        return 0;
}
Yandex
Объявления
17.10.2013, 00:01     Рекурсивные функции
Ответ Создать тему
Опции темы

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