Find the minimum value in an array using C programming
Write a recursive function recursiveMinimum that takes an integer array and the array size as arguments and returns the smallest element of the array. The function should stop processing and return when it receives an array of one element.
Answer:
#include <stdio.h> #include <stdlib.h> #include <time.h> #define SIZE 10 #define MAXRANGE 1000 // function prototype int recursiveMinimum( int array[], int low, int high ); int main( void ) { int array[ SIZE ]; // array to be searched int loop; // loop counter int smallest; // smallest element srand( time( NULL ) ); // initialize elements of array to random numbers for ( loop = 0; loop < SIZE; ++loop ) { array[ loop ] = 1 + rand() % MAXRANGE; } // end for printf( "Array members are:\n" ); // display array for ( loop = 0; loop < SIZE; ++loop ) { printf( " %d ", array[ loop ] ); } // end for // find and display smallest array element puts( "" ); smallest = recursiveMinimum( array, 0, SIZE - 1 ); printf( "\nSmallest element is: %d\n", smallest ); } // function to recursively find minimum array element int recursiveMinimum( int array[], int low, int high ) { int min; // int to store current minimum value // if the array has only one element, // the value of that element is the array’s smallest value if ( low == high ) return array[ high ]; else { min = recursiveMinimum( array, low + 1, high ); return array[ low ] < min ? array[ low ] : min; } }
Leave a reply