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

Α6.18 · Mystery

Εξέταση Σεπτεμβρίου 2025, Θέμα 1 · Δυσκολία ★☆☆ · trace · Κεφάλαια: 6, 2

Mystery [10 Μονάδες]

Η συνάρτηση mystery δέχεται ως όρισμα έναν ακέραιο αριθμό που αποτελείται από τα 3 τελευταία ψηφία του sdi σας. Για παράδειγμα, αν ο sdi σας είναι ο sdi2400789 τότε καλούμε την συνάρτηση ως mystery(789). Τι θα τυπώσει η συνάρτηση για τα ψηφία του δικού σας sdi; Αν δεν έχετε sdi, επιλέξτε έναν τυχαίο τριψήφιο. Αιτιολογήστε όπου νομίζετε πως χρειάζεται.

int mystery(int number) {
  int s = 0, rem;
  printf("%s %d %d\n", "Starting loop", s, rem);
  do {
    rem = number % 10;
    printf("Inner: %d\n", rem);
    number /= 10;
    s += rem;
  } while (number);
  printf("Loop ended %d\n", s);
  return s;
}

Υπόδειξη

Κρατήστε έναν πίνακα με τις τιμές των number, rem και s σε κάθε επανάληψη και θυμηθείτε ότι το σώμα της do-while εκτελείται τουλάχιστον μία φορά. Προσέξτε ιδιαίτερα την πρώτη printf: ποια τιμή έχει το rem εκείνη τη στιγμή; Σκεφτείτε επίσης τι γίνεται αν το τριψήφιό σας ξεκινά με 0 (π.χ. 042).

Αριθμός στον οδηγό: Α6.18 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: exam-2025-sep-q1 · Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2025-sep-q1.html · Markdown (GitHub)