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

αποτέλεσμα κώδικα


takis_tz

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

Δημοσ.

Μπορεί κάποιος να μου πει τι θα εμφανιστεί από την εκτέλεση του παρακάτω κώδικα στην οθόνη;

 

int cnt = 0;

for (i = 0; i < 10; i++)

for (j = 0; j < 10; j++)

for (k = 0; k < 10; k++)

if (2*i + j >= 3*k)

cnt++;

printf("%d\n", cnt);

Δημοσ.

Υπάρχουν 2 τρόποι για να βρεις την απάντηση.

1ος τρόπος, να γράψεις τον κώδικα και να τρέξεις το πρόγραμμα, και να δει τι αποτέλεσμα βγάζει.

2ος τρόπος, να μελετήσεις τα παλιά θέματα εξετάσεων, που έχουν και τις λύσεις τους, και νε δείς εκεί την απάντηση.

Και με τους 2 τρόπους βρίσκεις την σωστή απάντηση που είναι 517

χάρηκα που βοήθησα

Δημοσ.

Ουσιαστικά αυτό που κάνει αυτός ο κώδικας είναι να ελέγχει για ποιές τιμές του συνόλου (i, j, k), όπου και οι τρεις μεταβλητές παίρνουν ακέραιες τιμές απο 0 εως 9, ισχύει η ανισότητα (2*i + j >= 3*k). Όταν είναι αληθής αυτή η πρόταση (δηλαδή για τις δεδομένες τιμές i, j, k ισχύει η παραπάνω ανισότητα), τότε η ποσότητα cnt, που έχεις αρχικοποιήσει με την τιμή 0, αυξάνει κατά μια μονάδα.

 

Το αποτέλεσμα στη δεδομένη μορφή είναι ενας ακέραιος (το 517 απο τρέξιμο που έκανα σε Java), καθώς το printf βρίσκεται έξω απο κάθε loop και συνεπώς εκτελείται μια και μόνο φορά. Ανάλογα με το που τον τρέχεις τον κώδικα, θα υπάρχουν και ανάλογες εντολές για να συμπεριλάβεις το printf μέσα σε loop, αν θέλεις. Η μόνη διαφορά θα είναι ότι θα έχεις αποτέλεσμα της μορφής 1 2 3 ... 517.

 

Btw, δεν είμαι σίγουρη για το "%d\n" μόνο .. :o Υποθέτω έχει να κάνει με την μορφοποίηση του αποτελέσματος (τον τρόπο παρουσίασης του).

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...