Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
din73107
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 15
#1

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

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

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

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

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

Написать рекурсивную функцию, которая находит минимальный элемент в матрице (двумерном массиве). - C++
Написать рекурсивную функцию, которая находит минимальный элемент в матрице (двумерном массиве). Добавлено через 2 часа 11 минут ...

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

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

Найти сумму ряда используя рекурсивную функцию - C++
Нужно найти сумму S=1/sin(1)+1/(sin(1)+sin(2))+1/(sin(1)+sin(2) ... +sin(n)). Есть рекурсивная функция,но билдер выбивает ошибку. Помогите...

Используя рекурсивную функцию, найти сумму первых n элементов последовательности - C++
Используя рекурсивную функцию, найти сумму первых n элементов последовательности xn = 3 * xn-1, x0 = 1. Помогите пожалуйста. Нужно...

6
magirus
25.11.2011, 01:27
  #2
 Комментарий модератора 
может на втором году регистрации на форуме перечитаем правила? хотя бы в части касающейся именования тем?
0
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 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
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 15:09 #5
Цитата Сообщение от din73107 Посмотреть сообщение
а можно сделать так, чтобы элементы массива и количество их вводились с клавиатуры?
Можно, для вас это думаю совсем не затруднительно будет сделать)
0
go
Эксперт С++
3586 / 1366 / 129
Регистрация: 16.04.2009
Сообщений: 4,528
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
Эксперт С++
4229 / 2203 / 150
Регистрация: 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
Привет! Вот еще темы с ответами:

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

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

Уменьшить все элементы массива на минимальный используя функцию - C++
Помогите найти ошибки в программе. Дан одномерный массив из 10 вещественных чисел. Требуется преобразовать массив, уменьшив все...

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


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

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

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