Recursividad: Sumatoria Recursiva de un array en C
Para hacer una función recursiva en c. solo tenemos que llamarla dentro de si misma. Hay que tener en cuenta que aparte de la llamada a si misma tiene que en algún momento cortar la recursividad para no generar un loop.
En este caso la condición de salida es que cuando el numero de elementos llega a 0. Se deja de llamar a la función y se devuelve 0. En este momento, se hacen todas las sumas de los elementos y se le entrega a la variable “sumatoria” del main, el resultado de la suma.
En el siguiente código de ejemplo, se carga un vector con n elementos enteros y calcular la suma de sus elementos en forma recursiva
#include #include #include // CONSTANTES #define TAM_ARR_MAX 20 int main(int argc, char **argv) { //DECLARACION DE VARIABLES int VEC1[TAM_ARR_MAX], VEC2[TAM_ARR_MAX]; int tam_1; int sumatoria; printf("#### 1 #####\n"); tam_1 = ask_tam(); //Le pregunta al usuario que tamaño tendra el vector. arr_cargar(VEC1,tam_1); //El usuario Carga el vector. arr_mostrar(VEC1,tam_1); //Se muestra el vector Cargado sumatoria = rec_arr_sumatoria(VEC1,tam_1); // SUMATORIA DEL VECTOR EN FORMA RECURSIVA printf("\nLa sumatoria de los %d elementos del array es: %d",tam_1,sumatoria); printf("\n\n****************************\n"); //Cierro main. //getch(); return 0; } /************************************/ /* FUNCIONES */ /************************************/ int ask_tam(){ int n; printf("\nIngrese el tamanio que tendra el array (menor que %d):",TAM_ARR_MAX); do{ scanf("%d",&n); }while(n
Categorised as: Code
