Discussione: [C] Nuovo problema
View Single Post
Old 30-09-2005, 10:19   #2
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Ho modificato un po' il codice però la somma non mi viene esattamente come dovrebbe (dovrebbe venire 2157 invece viene 122). COsa posso fare?

Codice:
#include <stdio.h>
#include <malloc.h>

struct nodo{
       int val;
       struct nodo *figlio;
};

typedef struct nodo NODO;
typedef NODO *TREE;

TREE ReadTree(){
     
     TREE t=(TREE)malloc(sizeof(TREE));
     int nFigli, nVal, i;
     scanf("%d %d", &nFigli, &nVal);
     t->val=nVal;
     t->figlio=NULL;
     if(nFigli-- >0)
     t->figlio=ReadTree();
        
     return t;
}

int evaluateSum(TREE t){
     
     int sum=0;
     
     if(t==NULL)
        return sum;
     else if((t->val)%2==0){
           sum+=t->val;
        return sum+evaluateSum(t->figlio);
     }
     else
        return 0;
}

int main(void){
    TREE albero=(TREE)malloc(sizeof(NODO));
    albero=ReadTree();
    printf("Sum:  %d", evaluateSum(albero));
    return 0;
}
Manugal è offline   Rispondi citando il messaggio o parte di esso