Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
к8
0 / 0 / 1
Регистрация: 23.04.2014
Сообщений: 38
#1

Рекурсивная функция для нахождения минимального элемента массива - C++

14.05.2014, 19:18. Просмотров 1040. Ответов 10
Метки нет (Все метки)

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

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

Функция для нахождения минимального элемента
Разработать функцию для вычисления минимального значения элементов одномерного...

Рекурсивная функция нахождения максимального и минимального значения
Рекурсивная функция нахождения максимального и минимального значения

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

Рекурсивная функция нахождения максимального элемента в списке
Саму функцию нахождения максимального элемента написал. Мне только нужно...

Рекурсивная функция нахождения наибол. элемента в массиве
Нужно найти с помощью рекурсии наибольший элемент в массиве. Но код выдает...

10
zss
Модератор
Эксперт С++
6960 / 6522 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
14.05.2014, 19:38 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void FindMin(int* mass,int n,int i,int& min)
{
   if(i>=n)
         return;
   if(i==0)
   {
         min=mass[0];
         i=1;
   }
   if(mass[i]<min)
         min=mass[i];
   FindMin(mass,n,i+1,min);
}
0
к8
0 / 0 / 1
Регистрация: 23.04.2014
Сообщений: 38
14.05.2014, 19:52  [ТС] #3
Цитата Сообщение от zss Посмотреть сообщение
return;
а какое значение возвращает?
0
zss
Модератор
Эксперт С++
6960 / 6522 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
14.05.2014, 19:54 #4
Цитата Сообщение от к8 Посмотреть сообщение
а какое значение возвращает?
Никакое. Функция ведь void
0
к8
0 / 0 / 1
Регистрация: 23.04.2014
Сообщений: 38
14.05.2014, 19:59  [ТС] #5
Цитата Сообщение от zss Посмотреть сообщение
Никакое. Функция ведь void
у меня почему-то независимо от того какое бы ни было минимальное значние,всегда в ответе 1.

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
#include <iostream>
 
using namespace std;
 
void FindMin(int* mass,int n,int i,int& min)
 {
    if(i>=n)
          return;
    if(i==0)
    {
          min=mass[0];
          i=1;
    }
    if(mass[i]<min)
          min=mass[i];
    FindMin(mass,n,i+1,min);
 }
 
main()
{
    int mass[100];
    int n;
    cout<<"n=";cin>>n;
    for(int i=0;i<n;i++)
    {
        cout<<"mass["<<i<<"]=";cin>>mass[i];
    }
    cout << "min = "<<FindMin<<endl;
    return 0;
}
0
zss
Модератор
Эксперт С++
6960 / 6522 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
14.05.2014, 20:02 #6
строку 24 замените на
C++
1
2
3
int min;
FindMin(mass,n,0,min);
cout << "min = "<<min<<endl;
0
к8
0 / 0 / 1
Регистрация: 23.04.2014
Сообщений: 38
14.05.2014, 20:10  [ТС] #7
спасибо большое
0
outoftime
║XLR8║
756 / 656 / 211
Регистрация: 25.07.2009
Сообщений: 3,289
Записей в блоге: 5
14.05.2014, 20:21 #8
к8,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
template<typename T>
T min(T *a, size_t n, size_t i, T m) {
    return i < n ? min(a, n, i + 1, std::min(m, a[i])) : m;
}
 
template<typename T>
T min(T *a, size_t n) {
   return min(a, n, 1, *a);
}
 
int main(int argc, char **argv) {
    int a[] = {1, 2, 3, 4, 0, 6}; 
    std::cout << min(a, 6) << std::endl;
}
Чем короче код тем понятнее.
0
TrueBit
96 / 96 / 47
Регистрация: 19.11.2012
Сообщений: 195
14.05.2014, 21:13 #9
Попробуйте так(end должен быть больше или равен begin):

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>
#include <algorithm>
 
int * find_min(int * begin, int * end) {
    if (begin==end) return end;
 
    if((end-begin) == 1)
        return begin;
 
    if((end-begin) == 2) {
        if(*begin<=*(begin+1))
            return begin;
        else
            return begin+1;
    }
 
    int * first = find_min(begin,begin + (end-begin)/2);
    int * second = find_min(begin + (end-begin)/2, end);
    if(*first < *second)
        return first;
    else
        return second;
}
 
int main() {
    int a[] = { 6,43,12,5,12,41,12,44,2,55 };
 
    std::cout <<         *find_min(a,a+sizeof(a)/sizeof(int)) << std::endl;
    std::cout << *std::min_element(a,a+sizeof(a)/sizeof(int)) << std::endl;
 
    return 0;
}
0
tegauss
14.05.2014, 21:51
  #10

Не по теме:

outoftime, Ваш вариант конечно продвинут, но для новичка совершенно непонятен, ИМХО :)

0
outoftime
14.05.2014, 23:04     Рекурсивная функция для нахождения минимального элемента массива
  #11

Не по теме:

tegauss, Зато есть куда расти.

0
14.05.2014, 23:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2014, 23:04
Привет! Вот еще темы с ответами:

Составить программу для нахождения минимального элемента массива
1)Известен массив x1,х2,х3,…,х7. Составить программу для нахождения...

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

Функция для нахождения индекса максимального элемента массива
Помогите написать функцию для нахождения индекса максимального элемента...

Функция нахождения минимального элемента заданного столбца матрицы
Написать библиотеку функций для работы с квадратной целочисленной матрицей ...


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

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

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