Spasswolfs Variante ist ja ganz nett, aber noch optimierbar.
Was ist wenn jemand keine Zahlen sondern Buchstaben eingibt?
Und ich würde das in einer Schleife abhandeln(mir ist klar, das war nur Beispielcode zum Verdeutlichen).
Wegen der Buchstaben: ein einfaches if in der Schleife zum prüfen ob der gerade gelesene char zwischen 48 und 57 (inklusiv) liegt, wäre ein Anfang.
Deutlich sauberer und fehlerunanfälliger wäre aber, wenn Du wie Spasswolf per scanf einen String einließt, den mit atoi(), besser strtol(), in eine Zahl wandelst und dann mit Integer-Division und dem dabei entstehendem Rest an die einzelnen Stellen gehst.
Beispiel: anzunehmender Wert: "569"
Code: Alles auswählen
569 / 1 = 569 Rest = 0
569 / 10 = 56 Rest = 9
56 / 10 = 5 Rest = 6
5 / 10 = 0 Rest = 5
Damit hast Du implizit das Problem gelöst, wenn jemand Buchstaben eingibt, weil dann beim Umwandeln des Strings in eine Zahl schon 0 (atoi) rauskommt, bzw. mit strtol kriegst Du es besser raus, weil da hast Du eine bessere Fehlerprüfung(siehe man strtol).
Gruß
deadeye
P.S.: Ich habe mit Absicht keinen Beispielcode angegeben, der OP will ja auch noch ein wenig Gehirnschmalz reinstecken.