Karakterler sayi olarak nasil represente ediliyor tam olarak bilmiyorum. Ama sonsuza kadar accumulate olan bir karakter var, yani sen scanf'te sayi girilmesi gereken yere sayi yerine char girdigin zaman, girdi-cikti stream'ine birden fazla sayi gondermis gibi oluyorsun, onlar da accumulate olup sonsuz donguye sebep oluyor. scanf'ten sonra getchar fonksiyonunu kullanarak bahsettigin problemi cozebilirsin. Hatta getchar kullanmak genelde cok daha guvenli. Sen klavyede enter'a bastigin zaman newline karakteri ('\n' karakteri) de girdi/cikti akisina giriyor. Onu handle etmek icin cogu zaman getchar kullanmak lazim (scanf'ten sonra).
Bir de geriye dogru goto kullanmasan, fazla alismadan kullanmayi biraksan senin icin cok daha guzel olur.