1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

Не Получается Рекурсия, Подскажите Пожалуйста.

Тема в разделе "C/C++/C#", создана пользователем PadshijAngel, 27 дек 2011.

  1. PadshijAngel

    PadshijAngel Гость

    Нужно с помощью рекурсии найти максимальное и минемальное значение в одномерном массиве, ни чего не получается есть пример программы по нахождению только минемального но она тоже работает не правильно:
    #include<iostream>
    using namespace std;
    int min(const int a[], int n, int r)
    { if (n==r) return a[n];
    int m = (n+r)/2;
    int x = min(a, n, m);
    int y = min(a, m+1, r);
    if (x<y) return x; else return y;
    }
    void main()
    {int mas[5]={1,2,3,4,5};
    int k;
    cout<<min(mas,5,k-1);
    system("pause");
    }
    Подскажите пожалуйста как это реализовать?
     
  2. PadshijAngel

    PadshijAngel Гость

    Я исправила программу с места вызова функции:
    void main()
    {int mas[5]={1,2,3,4,5};
    cout<<min(mas,0,5);
    system("pause");
    }
    Как я поняла так должно было стать правильно но она все равно не работает. Выдает большое какое то число, хотя должна была выдавать 5.
     
  3. dmitry003

    dmitry003 New Member

    Регистрация:
    12 май 2009
    Сообщения:
    4
    Симпатии:
    0
    #include <cstdlib>
    #include <iostream>
    using namespace std;
    int min(const int a[], int n, int r)
    { if (n==r) return a[n];
    int m = (n+r)/2;
    int x = min(a, n, m);
    return x;
    }
    int max(const int a[], int n, int r)
    { if (n==r) return a[n+1];
    int m = (n+r)/2;
    int y = max(a, m, r-1);
    return y;
    }
    int main(int argc, char *argv[])
    {
    int mas[5]={1,2,3,4,5};

    cout<<"min = "<<min(mas,0,5)<<"\n";
    cout<<"max = "<<max(mas,0,5)<<"\n";
    system("PAUSE");

    }
     
Загрузка...

Поделиться этой страницей