#include <stdio.h>
#define SIZE 10
int recursiveMinimum(const int b[], size_t low, size_t high);
int main(void) {
int a[SIZE] = {12, 5, 8, 2, 9, 15, 3, 20, 7, 11};
int min = recursiveMinimum(a, 0, SIZE - 1);
printf("Minimum value in the array is: %d\n", min
);
return 0;
}
int recursiveMinimum(const int b[], size_t low, size_t high) {
if (low == high) {
return b[low];
}
int min = recursiveMinimum(b, low + 1, high);
if (b[low] < min) {
return b[low];
} else {
return min;
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgU0laRSAxMAoKaW50IHJlY3Vyc2l2ZU1pbmltdW0oY29uc3QgaW50IGJbXSwgc2l6ZV90IGxvdywgc2l6ZV90IGhpZ2gpOwoKaW50IG1haW4odm9pZCkgewogICAgaW50IGFbU0laRV0gPSB7MTIsIDUsIDgsIDIsIDksIDE1LCAzLCAyMCwgNywgMTF9OwoKICAgIGludCBtaW4gPSByZWN1cnNpdmVNaW5pbXVtKGEsIDAsIFNJWkUgLSAxKTsKCiAgICBwcmludGYoIk1pbmltdW0gdmFsdWUgaW4gdGhlIGFycmF5IGlzOiAlZFxuIiwgbWluKTsKCiAgICByZXR1cm4gMDsKfQoKaW50IHJlY3Vyc2l2ZU1pbmltdW0oY29uc3QgaW50IGJbXSwgc2l6ZV90IGxvdywgc2l6ZV90IGhpZ2gpIHsKICAgIGlmIChsb3cgPT0gaGlnaCkgewogICAgICAgIHJldHVybiBiW2xvd107CiAgICB9CgogICAgaW50IG1pbiA9IHJlY3Vyc2l2ZU1pbmltdW0oYiwgbG93ICsgMSwgaGlnaCk7CgogICAgaWYgKGJbbG93XSA8IG1pbikgewogICAgICAgIHJldHVybiBiW2xvd107CiAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBtaW47CiAgICB9Cn0=