Προς το περιεχόμενο

C++ Πρόσθεση προηγούμενων αριθμών με νέους


ICheats

Προτεινόμενες αναρτήσεις

Καλησπέρα παιδιά.  Σήμερα ξεκίνησα να γράφω ένα καινούργιο μέρος για το πρόγραμμα που έχω φτιάξει σε C++ (το οποίο κάνει αριθμητικές πράξεις και όχι μόνο).  Το πρόβλημα που μου παρουσιάστηκε όμως ήταν ότι εγώ θέλω να ζητάω από το χρήστη έναν αριθμό και με βάση αυτό να ζητάει δύο άλλους και να τους προσθέτει.  Στη συνέχεια να ξανακάνει αυτή τη διαδικασία και να προσθέτει στο σύνολο και το προηγούμενο σύνολο.  Μέχρι στιγμής όμως δεν έχω καταφέρει να φτιάξω τη λογική, με αποτέλεσμα να έχω φτιάξει μόνο αυτό: (δηλαδή μία function που την καλώ από τη main).


void addition()
{
     cout << "------Addition------ \n";

     cout << "How many times will you add?\n->";
     cin >> ask_point;  

     if (ask_point == 0)
     {
        cout << "--> Warning! You can only type numbers bigger than 0!\n Program will now terminate!\n";

        exit(EXIT_FAILURE);
     }

     for (unsigned int f=1; f<=ask_point; f++) //του λέω ότι για όσες φορές πει ο χρήστης τόσες φορές να εκτελεί τον παρακάτω κώδικα:
     {
        cout << "Give your first number\n-> ";
        cin >> first;

        cout << "The next ->\n-> ";
        cin >> ending;

        cout << "Your result is:\n-> " << first + ending << "\n";
    }
}

 

  Μέχρι εδώ όλα καλά! Στο τέλος όμως θέλω να κάνει τα εξής:

 

1) Αν ο χρήστης έχει δώσει αριθμό μεγαλύτερο από 0 όπως γράφω στον κώδικα
    1) Να παίρνει το αποτέλεσμα του κώδικα που είναι μέσα στο for loop

    2) Να κάνει πάλι τον ίδιο κώδικα

    3) Και στο τέλος να προσθέτει τα δύο αποτελέσματα

    4) Και συχρόνως να μπορεί να κάνει το ίδιο ακόμα και αν ο χρήστης θέλει να εκτελέσει τον κώδικα 3 ή και παραπάνω φορές! 

 

Ελπίζω να καταλάβατε.  Είμαι σε linux ubuntu 12.10, χρησιμοποιώ το codeblocks 12.05, με gnu gcc compiler!! 

Ευχαριστώ πολύ! Σας παρακαλώ είναι ανάγκη!!

 

ΥΣ: Γνωρίζω πως η exit(EXIT_FAILURE) δεν είναι καλός τρόπος για να κλείνει το προγραμμα. Παρόλα αυτά όταν προσπαθώ με return 0 μου βγάζει σφάλμα. Επίσης και η return 0 δεν είναι καλή μέσα στο πρόγραμμα αλλά κάνει καλύτερη έξοδο.  Το ξέρω ότι θα μπορούσα να έχω έναν unsigned int που να ελέγχει αν είναι 0 ή 1 η αξία του και αν είναι 1 πχ. να κλείνει! Αλλά είναι πολύ δύσκολο να το κάνω αυτό γιατί η δομή του προγράμματος δεν μου το επιτρέπει μιας και έχει αρκετές λειτουργίες! Αν γνωρίζεται μία καλύτερη εντολή για καλύτερο κλείσιμο θα ήταν ευπρόσδεκτη! Ευχαριστώ πολύ! :)  

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν πολυκαταλαβα τι δεν σου δουλευει

 

ζητας εναν αριθμο τον ask_point ο οποιος λειτουργει σαν μετρητης για το ποσες φορες θα εκτελεστει το loop..απο οτι καταλαβαινω...

 

εξηγησε αν σου γινεται λιγο πιο σωστα τι ακομα θες να κανεις :)

 

επισης το ask_point  πως οριζεται?εννοω το  if ( ask_point == 0 ) μπλα μπλα..δεν εξασφαλιζει καπως οτι δεν εχει δοθει αρνητικος αριθμος :)..εκτος και αν οριζεται καπου να ειναι ακεραιος και θετικος....

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αναγκαστικα θα βαλεις μια μεταβλητη η οποια θα κραταει το αθροισμα. Δηλαδη η loop σου θα ειναι καπως ετσι:

 

for (unsigned int f=1; f<=ask_point; f++) //του λέω ότι για όσες φορές πει ο χρήστης τόσες φορές να εκτελεί τον παρακάτω κώδικα:
     {
        cout << "Give your first number\n-> ";
        cin >> first;

        cout << "The next ->\n-> ";
        cin >> ending;

        sum=first+ending;

        cout << "Your result is:\n-> " << first + ending << "\n";
    }

αλλα γενικα ξανακοιταξε την λογικη του κωδικα σου για παραδειγμα αν ο χρηστης πει οτι θελει να προσθεσει 7 αριθμους η καθε σου λουπα κανει 2 προσθεσεις αριθμων αρα θα προσθεσει 14 αριθμους (με καθε επιφυλαξη ολα αυτα που σου λεω γιατι ισως θες να υλοποιησεις κατι διαφορετικο)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...