Il getchar serve a svuotare il buffer dal tasto "Invio" utilizzato per l'inserimento del dato con la scanf. Se non ci fosse (e puoi provarlo ...) la prossima scanf non funzionerebbe ...
La if (con l'operatore modulo %) viene eseguita ogni 24 incrementi e non solo dopo i primi 24 ... questo consente di fermare lo scorrimento delle righe ogni 24 righe, non solo la prima volta ...
P.S. Il tasto Code è quello con # (se ti soffermi un attimo sopra quel tasto, appare il suggerimento ...)