Форум программистов, компьютерный форум CyberForum.ru

Найти минимум элементов массива с помощью рекурсивной функции min1(k) - C++

Восстановить пароль Регистрация
 
Michail1994
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 72
13.11.2012, 12:00     Найти минимум элементов массива с помощью рекурсивной функции min1(k) #1
Есть небольшая задача: Дан массив целых чисел. Найти минимум его элементов с помощью рекурсивной функции min1(k), возвращающей минимум последних элементов, начиная с k-го. Надо создать к ней рекурсивный алгоритм и написать программу на С++. По-моему программа выглядит так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
 
int x[] = {1, 2, 1, 3, 12, 2};
 
int min1(int k)
{
int s;
if( k == (sizeof(x)/2 - 1))       // если k = n - 1
return x[sizeof(x)/2 - 1];
else
   {
      s = min1(k+1);
if( x[k] < s ) return x[k]; // возврат минимума чисел
else return s;      // min1(k+1) и x[k]
   } }
 
void main()
{   printf("\n min = %d", min1(0)); getch();} // вывод минимума элементов массива
По идее ответ должен быть min=1, но почему-то выдается min=0. Помогите разобраться с задачей.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 12:00     Найти минимум элементов массива с помощью рекурсивной функции min1(k)
Посмотрите здесь:

C++ Определить, сколько из элементов массива кратны M и больше N, и найти минимум из найденых
C++ Дана квадратная матрица [3][3]. Вычислить n-ую степень этой матрицы с помощью рекурсивной функции.
С помощью рекурсивной функции осуществить вывод на экран элементов одномерного массива C++
С помощью рекурсивной функции вычислить значение выражения C++
С помощью функции определения среднего значения элементов массива обработать два массива разной размерности C++
C++ Поиск минимума с помощью рекурсивной функции
Написать программу для вычисления выражения с помощью рекурсивной функции C++
C++ Найти произведение всех элементов массива с помощью рекурсивной функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
13.11.2012, 12:13     Найти минимум элементов массива с помощью рекурсивной функции min1(k) #2
как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
 
int x[] = {0, -12, -11, 3, 12, -2};
 
int min1(int k)
{
    int retval;
if(k>=sizeof(x)/sizeof(x[0])) return x[sizeof(x)/sizeof(x[0])-1];
    retval=min1(k+1);
    if(retval<x[k])
        return retval;
    return x[k];
}
 
void main()
{
    printf("\n min = %d", min1(2)); getch();
}
Yandex
Объявления
13.11.2012, 12:13     Найти минимум элементов массива с помощью рекурсивной функции min1(k)
Ответ Создать тему
Опции темы

Текущее время: 21:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru