Благодаря рекурсивной функции осуществить поиск минимального элемента одномерного массива - C (СИ)
Формулировка задачи:
Требуется:
С помощью рекурсивной функции осуществить поиск минимального элемента одномерного массива Массив, предположим, состоит из 10 элементов (мне не надо делать массив, в котором размерность будет меняться или количество элементов),главное
, чтоб все эти 10 элемнтов массива я мог задать в ручную (т.е. когда программа будет выполняться)На деле:
компилятор выдает ошибки 1. invalid conversion from 'int' to 'int*' [-fpermissive] 2. initializing argument 1 of 'int minimal(int*)' [-fpermissive]#include <stdio.h>
#include <conio.h>
int minimal (int min, int i, int a[10])
{
for (i; i<10; i++)
{
if (min>=a[i])
min=a[i];
}
return min;
}
int main(void)
{
int i=0;
int min=0;
int a[10];
for(i; i<10; i++)
{
printf("Vvedite znachenie elemnte %d massiva a: ", i);
scanf("%d", &a[i]);
}
min=a[i];
printf ("Minimalnoe znachenie massiva = %d", minimal(min, i, a[i]));
getch();
}Решение задачи: «Благодаря рекурсивной функции осуществить поиск минимального элемента одномерного массива»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
int minimal (int *array, int size)
{
int l, r, k;
if (size==1) return *array;
l=minimal(array, k=size>>1);
r=minimal(array+k, size-k);
return l<r?l:r;
}
void main(void)
{
int i;
int a[10];
for(i=0; i<10; i++)
{
printf("Vvedite znachenie elemnte %d massiva a: ", i);
scanf("%d", &a[i]);
}
printf ("Minimalnoe znachenie massiva = %d", minimal(a,10));
getch();
}