UnKnown96 έγραψε:Σε ευχαριστώ πάρα πολύ!
Θα τον μελετίσω αμέσως

Τίποτα, να 'σαι καλά

Υπάρχουν διάφορα που μπορείς να βελτιώσεις ακόμα, όπως π.χ. το να διαβάζεις το input του χρήστη ως string και να το μετατρέπεις μετά σε double ή int, με έτοιμες συναρτήσεις όπως π.χ. οι strtod() και atoi().
Αν σκέφτεσαι να το πας ένα επίπεδο παραπάνω πάντως, μαθαίνοντας ταυτόχρονα τη γλώσσα, τα calculators συνήθως υλοποιούνται με τη χρήση στοίβας (stack) για τις πράξεις και τους όρους, και reverse polish notation για την διαχείριση της προτεραιότητας στις πράξεις.
Ανάλυση σχετικού αλγόριθμου μαζί με κώδικα μπορείς να διαβάσεις εδώ:
http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Stack/(θα βρεις πολλούς και μόνος σου αν το ψάξεις).
Πλήρη ανάλυση ειδικά για το Reverse Polish Notation μπορείς να διαβάσεις στο σχετικό άρθρο της Wikipedia:
http://en.wikipedia.org/wiki/Reverse_Polish_notationΈνας πολύ απλοποιημένος κώδικας είναι επίσης αυτός:
http://www.java2s.com/Code/C/Data-Struc ... ulator.htmΑν έχω καταλάβει καλά δεν έχεις μεγάλη εμπειρία, οπότε τα παραπάνω μπορεί να σου φαντάζουν... κινέζικα, αλλά ίσως σου φανούν χρήσιμα όσο προχωράς την εκμάθησή σου. Ειδικά η στοίβα (stack) είναι από τις πιο απλές δομές δεδομένων και χρησιμοποιείται κατά κόρον σε διάφορες εφαρμογές (προσωπικά για να θυμηθώ τα παλιά έφτιαξα πριν λίγο καιρό το παιχνίδι της Ξερής σε στάνταρ C, χρησιμοποιώντας κατά κόρον στοίβες για τα χαρτιά του τραπεζιού και τα μαζέματα των παικτών... αν νομίζεις πως μπορεί να σου φανεί χρήσιμο πες μου να σου δώσω τον κώδικα).