0votos

suma de los elementos de un vector recursivamente en C

por josejuan hace 4 años

En C, pueden hacerse cosas "raras" pero te fuerzan a comprender mejor qué se está haciendo realmente a más bajo nivel. Sugiero entender esta solución para entender qué esta ocurriendo :)

el codigo ya esta hecho pero al momento de la ejecucion me da un resultado basura . ayuda por favor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h> 
#include <malloc.h> 
 
typedef struct {    // sólo 2 words! (ej. puede ir en la pila) 
    int * value;    // ¡no se libera sólo! (mejor usar clases ¡pero sólo C++!) 
    int size; 
} vector; 
 
vector llenar() { 
    int i; 
    vector nuevo; 
    printf("Ingrese dimension del arreglo: "); 
    scanf("%d", &nuevo.size); 
    nuevo.value = (int *) malloc(sizeof(int) * nuevo.size); 
    for(i = 0; i < nuevo.size; i++) { 
        printf("Elemento %d = ", i+1); 
        scanf("%d", &nuevo.value[i]); 
    return nuevo; 
 
// ¿cómo funciona? 
int suma(vector v) { 
    if(v.size-- > 0) 
        return v.value[v.size] + suma(v); 
 
int main(int argc, char *argv[]) { 
 
    printf("la suma de los elementos es %d", suma(llenar())); 
 
    return 0; 
 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.