Cualquiera que sea la entrada, el resultado siempre es 0. ¿Por qué?
#include <stdio.h> #include <conio.h> int rekursiv( int v[], int i, int n, int *min ); int main( void ) { int v[ 100 ]; int n, i, min; printf( "Shkruanni n: " ); scanf( "%d", &n ); printf( "Shkruani elementet e vektorit.\n" ); for( i = 0; i < n; i++ ){ scanf( "%d", &v[ i ] ); }//end for min = v[ 0 ]; i = 1; printf( "Minimumi eshte %d.", rekursiv( v, i, n, &min ) ); getche(); return 0; }//end main int rekursiv( int v[], int i, int n, int *min ) { if( i == n - 1 ) { return *min; }//end if else { if( *min < v[ i ] ) { *min = v[ i ]; }//end if rekursiv( v, i + 1, n, min ); }//end else }//end rekursivDebe compilar con las advertencias activadas. rekursiv no siempre devuelve un valor.
Cambio
rekursiv( v, i + 1, n, min );para
return rekursiv( v, i + 1, n, min );En la función ( int rekursiv(int v[], int i, int n, int *min) ), debe devolver un número entero para que su última condición no devuelva nada. Debe verificar la última condición ELSE
else { if( *min < v[ i ] ){ *min = v[ i ]; }//end if rekursiv( v, i + 1, n, min ); }