Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 12.01.2020
Сообщений: 22
1

Описать рекурсивную функцию которая находит минимальный элемент вещественного массива

02.07.2020, 12:51. Показов 4997. Ответов 5

Author24 — интернет-сервис помощи студентам
Описать рекурсивную функцию MinRec(A,N) вещественного типа, которая находит минимальный элемент вещественного массива А размера N, не используя оператор цикла. С помощью функции MinRec1 найти минимальные элементы массивов А, В, С размера NA, NB, NC соответственно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.07.2020, 12:51
Ответы с готовыми решениями:

Написать рекурсивную функцию, которая находит минимальный элемент в матрице (двумерном массиве).
Написать рекурсивную функцию, которая находит минимальный элемент в матрице (двумерном массиве). ...

Создать функцию min, которая находит наименьший элемент вещественного массива А размера N
Дан массив A размера N найти минимальный элимент. написать функцыю ввода масива,...

Описать функцию Min(A,N) (Max(A,N) вещественного типа, находящую минимальный (максимальный) элемент массива A
Описать функцию Min(A,N) (Max(A,N)) вещественного типа, находящую минимальный (максимальный)...

Составить рекурсивную функцию, которая находит наименьший элемент массива из реальных чисел
double min(double* arr, int n); Примеры double arr = {4.1, 2.0, 5.3, 7.2}; min(arr, 4); // ->...

5
2105 / 1192 / 496
Регистрация: 11.10.2018
Сообщений: 6,000
02.07.2020, 13:05 2
В чем проблема?
0
0 / 0 / 0
Регистрация: 12.01.2020
Сообщений: 22
02.07.2020, 13:16  [ТС] 3
Есть функция которая находит минимальный элемент, но в ней используется цикл. Я не понимаю как сделать ее рекурсивной
C++
1
2
3
4
5
6
7
float Min(float* a, int n)
{
    float temp = a[0];
    for (int i = 1; i < n; i++)
        if (temp > a[i])temp = a[i];
    return temp;
};
0
264 / 183 / 87
Регистрация: 03.05.2020
Сообщений: 790
02.07.2020, 13:27 4
Лучший ответ Сообщение было отмечено maria484 как решение

Решение

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
25
double MinRec(double *a,int n)
{
    if(n>1) return min(a[n-1],MinRec(a,n-1));
    return *a;
}
void main()
{
    int n[]={5,10,7};
    double *a[3];
    srand((unsigned)time(0));
    for(int i=0; i<3; i++)
    {
        cout<<(char)('A'+i)<<":\n";
        a[i]=new double[n[i]];
        for(int j=0; j<n[i]; j++)
        {
            a[i][j]=(rand()%201-100)/10.;
            cout<<a[i][j]<<" ";
        }
        cout<<"\nmin="<<MinRec(a[i],n[i])<<endl;
    }
    for(int i=0; i<3; i++)
        delete[] a[i];
    system("pause");
}
1
2105 / 1192 / 496
Регистрация: 11.10.2018
Сообщений: 6,000
02.07.2020, 17:53 5
Лучший ответ Сообщение было отмечено maria484 как решение

Решение

Создаете функцию с параметром bool First - обозначает первый вызов. Когда вызываете 1 раз устанавливаете true, когда будете вызывать в самой функции, устанавливаете false.
При первом вызове запоминаете значение первого элемента массива
C++
1
2
3
4
5
6
7
8
9
10
//Это будет в функции
if(First)
{
min = a[i];
}
else
{
    if(min < a[i])
        min = a[i];
}
Среди параметров функции также будет номер элемента i - При первом вызове он будет i = 0, потом i++.

Добавлено через 4 часа 24 минуты
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
using namespace std;
#define NA 5
#define NB 6
#define NC 7
double A[NA], B[NB], C[NC];
 
double MinDrec(double *M, int Size, int n/*номер вызова*/)
{
    static double min = 0;
    
    if(n == 0)
    {
        min = M[0];
    }
    else
    {
        if(n == Size)
            return min;
        if(M[n] < min)
            min = M[n];
    }
    MinDrec(M, Size, ++n);
    return min;
}
 
int main()
{
    int i;
    double m;
    
    //Zapolnenie, cout
    cout << "Massiv A\n";
    for(i = 0; i < NA; i++)
    {
        A[i] = (double)(rand()%1000)/(rand()%1000);
        cout << A[i] << " ";
    }
    
    cout << "\n\nMassiv B\n";
    for(i = 0; i < NB; i++)
    {
        B[i] = (double)(rand()%1000)/(rand()%1000);
        cout << B[i] << "  ";
    }
    
    cout << "\n\nMassiv C\n";
    for(i = 0; i < NC; i++)
    {
        C[i] = (double)(rand()%1000)/(rand()%1000);
        cout << C[i] << " ";
    }
    
    m = MinDrec(A, NA, 0);
    cout << "\n\nA min = " << m << "\n";
    
    m = MinDrec(B, NB, 0);
    cout << "\n\nB min = " << m << "\n";
    
    m = MinDrec(C, NC, 0);
    cout << "\n\nC min = " << m << "\n";
    
    return 0;
}
1
0 / 0 / 0
Регистрация: 12.01.2020
Сообщений: 22
02.07.2020, 18:08  [ТС] 6
Спасибо большое!
0
02.07.2020, 18:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2020, 18:08
Помогаю со студенческими работами здесь

Написать функцию, которая находит минимальный элемент одномерного массива
Написать функцию, которая находит минимальный элемент одномерного массива.

Описать рекурсивную функцию, которая методом деления отрезка пополам находит корень уравнения
Описать рекурсивную функцию Root (a, b, 8), которая методом деления отрезка пополам находит с...

Описать рекурсивную функцию MinRec(A,N) вещественного типа, которая находит минимальный элемент массива
Описать рекурсивную функцию MinRec(A,N) вещественного типа, которая находит минимальный элемент...

Описать рекурсивную функцию MinRec(A,N) вещественного типа, которая находит минимальный элемент
Описать рекурсивную функцию MinRec(A,N) вещественного типа, которая находит минимальный элемент...

Описать рекурсивную функцию MaxRec(A,N) вещественного типа, которая находит максимальный элемент вещественного массива A размера N
Описать рекурсивную функцию MaxRec(A,N) вещественного типа, которая находит максимальный элемент...

Описать функцию Min(A,N) вещественного типа, находящую минимальный элемент массива
Описать функцию Min(A,N) вещественного типа, находящую минимальный элемент массива А, состоящего из...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru