Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
din73107
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 15
1

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

25.11.2011, 01:22. Просмотров 1986. Ответов 6
Метки нет (Все метки)

Очень нужна ваша помощь. Нужно составить программу с использованием рекурсии. Все значения передавать функциям в виде параметров.

Дан массив Х из N вещественных чисел. Найти минимальный элемент массива, используя вспомогательную рекурсивную функцию, находящую минимум среди последних элементов массива Х, начиная с N-го.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2011, 01:22
Ответы с готовыми решениями:

Найти минимальный элемент вектора, используя вспомогательную рекурсивную функцию
Дан вектор Х из N вещественных чисел. Найти минимальный элемент вектора,...

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

Найти сумму ряда используя рекурсивную функцию
Нужно найти сумму S=1/sin(1)+1/(sin(1)+sin(2))+1/(sin(1)+sin(2) ... +sin(n))....

Найти НОД используя рекурсивную функцию вычисления
Даны натуральные числа n, m; найти НОД(m, n). Написать программу, использующую...

Найти сумму ряда используя рекурсивную функцию
Нужно найти сумму S=1/sin(1)+1/(sin(1)+sin(2))+1/(sin(1)+sin(2) ... +sin(n))....

6
magirus
25.11.2011, 01:27
  #2
 Комментарий модератора 
может на втором году регистрации на форуме перечитаем правила? хотя бы в части касающейся именования тем?
0
Thinker
Эксперт С++
4233 / 2207 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 09:59 3
C
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
double Min(double *a, int n)
{
   return n == 1 ? a[0] : (Min(a, n-1) < a[n-1] ? Min(a, n-1) : a[n-1]);
}
 
int main()
{
    double a[5] = {1.0, -2.5, 3.4, -4.5, 0.0};
    printf("%f\n", Min(a, 5));
    return 0;
}
Но лучше, конечно, так:

C
1
2
3
4
5
double Min(double *a, int n)
{
   double buf;
   return n == 1 ? a[0] : ((buf = Min(a, n-1)) < a[n-1] ? buf : a[n-1]);
}
0
din73107
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 15
25.11.2011, 15:06  [ТС] 4
а можно сделать так, чтобы элементы массива и количество их вводились с клавиатуры?
0
Thinker
Эксперт С++
4233 / 2207 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 15:09 5
Цитата Сообщение от din73107 Посмотреть сообщение
а можно сделать так, чтобы элементы массива и количество их вводились с клавиатуры?
Можно, для вас это думаю совсем не затруднительно будет сделать)
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
25.11.2011, 15:52 6
Цитата Сообщение от din73107 Посмотреть сообщение
а можно сделать так, чтобы элементы массива и количество их вводились с клавиатуры?
конечно, это же обычный ввод
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
#include <iostream>
#define SIZE 100
 
using namespace std;
 
 
int main(int argc, char* argv[])
{
 
        int arr[SIZE]; 
        int size;
 
        cout << " Enter size = ";
        cin >> size;
 
        for (int i=0;i<size;i++)
        {
                cout << "arr["<<i+1<<"]=";
                cin >> arr[i];
 
        }
        
        for (int i=0;i<size;i++)
        {
                cout << arr[i]<<"   ";
 
        }
 
 
        system ("pause");
        return 0;
}
0
Thinker
Эксперт С++
4233 / 2207 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 15:56 7
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void Init(double *a, int n)
{
   if (n > 0)
   {
       scanf("%lf", a + n - 1);
       Init(a, n - 1);
   }
}
 
double Min(double *a, int n)
{
   double buf;
   return n == 1 ? a[0] : ((buf = Min(a, n-1)) < a[n-1] ? buf : a[n-1]);
}
 
int main()
{
    double a[10];
    Init(a, 10);
    printf("%f\n", Min(a, 10));
    return 0;
}
0
25.11.2011, 15:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2011, 15:56

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

Создать рекурсивную функцию, которая возвращает наименьший элемент массива
Задача: Напишите рекурсивную функцию, которая принимает массив и размер...

Создать рекурсивную функцию recursiveMinimum, которая возвращает наименьший элемент массива
Помогите решить Напишите рекурсивную функцию recursiveMinimum, которая...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru