int sommaDiscendenti(int x, Albero a) { if(a != NULL){ return somma(find(x,a)); } else return 0; }
int main() { double n, ris=0; char op; cout<<"ELENCO OPERAZIONI DISPONIBILI:\n"<<endl; cout<<"somma (+)"<<endl; cout<<"sottrazione (-)"<<endl; cout<<"prodotto (*)"<<endl; cout<<"divisione (/)"<<endl; cout<<"inverso di un numero (!)"<<endl; cout<<"potenza (^)"<<endl; cout<<"radice quadrata (R)"<<endl; cout<<"visualizzazione risultato (=)"<<endl; cout<<"\n\nPrimo numero: "; cin>>ris; while (op!='='){ cout<<"Operatore: "; cin>>op; switch (op) { case '+': cout<<"Secondo numero: "; cin>>n; ris=somma(ris,n); break; case '-': cout<<"Secondo numero: "; cin>>n; ris=sott(ris,n); break; case '*': cout<<"Secondo numero: "; cin>>n; ris=prodotto(ris,n); break; case '/': cout<<"Secondo numero: "; cin>>n; ris=divisione(ris,n); break; case '!': ris=inverso(ris); break; case '^': cout<<"Secondo numero: "; cin>>n; while(ris==0 && n<0){ cout<<"Errore! Reinserire il secondo numero (maggiore di 0)(In base alla scelta dei matematici): "; cin>>n; } ris=potenza(ris,n); break; case 'R': ris=radice(ris); break; case '=': cout<<ris<<endl; break; default: cout<<"operazione non possibile"<<endl; } } getchar(); return 0; }
/** da' come risultato la somma dei valori di tutti gli elementi */ int somma(Albero a) { return a== NULL ?0:a->element+somma(a->left)+somma(a->right); }