Τι κάνει το παρακάτω πρόγραμμα;
#define ERROR -1 // Return value for illegal character
int getinteger(int base) {
int ch; // No need to declare ch as int - no EOF handling
int val = 0; // Initialize return value
while ((ch = getchar()) != '\n') // Read up to new line
if (ch >= '0' && ch <= '0' + base - 1) // Legal character?
val = base * val + (ch - '0'); // Update return value
else
return ERROR; // Illegal character read
return val; // Everything OK - Return value of number read
}
Ιχνηλατήστε το val για την κλήση getinteger(10) με είσοδο 42 και για την getinteger(2) με είσοδο 101. Τι τιμή έχει το ch - '0' για έναν χαρακτήρα-ψηφίο; Τι γίνεται αν εμφανιστεί γράμμα;
Αριθμός στον οδηγό: Α9.7
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec09-getinteger ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec09-getinteger.html ·
Markdown (GitHub)