Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Κ8.5 · while(--i) με i = 0

Kahoot «Επίλυση Προβλημάτων» (διάλεξη 7) · Δυσκολία ★★★ · multiple-choice · 17% σωστές απαντήσεις (192 απαντήσεις στο αμφιθέατρο) · Κεφάλαια: 8, 6

Παλιό θέμα (δύσκολο): τι θα εκτυπωθεί από το πρόγραμμα;

int i = 0;
while (--i);
printf("@");

Συχνή παρανόηση

Το 43% απάντησε ότι θα τυπώνει @ επ’ άπειρον, χάνοντας ότι το ; είναι η (κενή) εντολή του βρόχου και ότι το i κάποτε υπερχειλίζει και φτάνει ξανά στο 0.

Υπόδειξη

Προσέξτε το ερωτηματικό αμέσως μετά τη while, και σκεφτείτε τι γίνεται όταν ένας int μειώνεται ξανά και ξανά πέρα από την ελάχιστη τιμή του.

Αριθμός στον οδηγό: Κ8.5 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: kahoot-while-predecrement-overflow · Σύνδεσμος: https://progintro.github.io/study/questions/kahoot/kahoot-while-predecrement-overflow.html · Markdown (GitHub)