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;
}