#include<stdio.h>
#define SIZE 7
int recursiveMinimum(int a[], int size);
int main(void) {
int a[ SIZE ] = { 5, 7, 4, 3, 5, 1, 3 }; // Number 2 is not initialized.
printf("The smallest number is %d", recursiveMinimum(a, SIZE));
return 0;
}
int recursiveMinimum(int a[], int size) {
static int min ;
static int i = 0;
min = a[ i ];
if(a[ i + 1 ] < min) {
min = a[ i + 1 ];
}
i++;
if(i == size ) {
return min;
} else {
return recursiveMinimum(a, size );
}
}
Так почему же он печатает 2
?Рекурсивная минимальная функция
Я подозреваю типичный случай «искусственного примера только для изучения рекурсии». Единственное, что нужно для этого - это день, когда вы станете учителем, тогда вы можете научить других, как использовать рекурсию с искусственными примерами, чтобы в тот день, когда они стали учителями, они могут научить других использовать рекурсию с искусственными примерами, ... – Lundin
Возможный дубликат [Найти минимальное число в массиве с рекурсией?] (Http://stackoverflow.com/questions/1735550/find-the-minimum-number-in-an-array-with-recursion) –
Нет необходимости в 'статических' переменных в' recursiveMinimum() '. – chux