自己写了个东西但是遇到了一个不明白的有关问题

自己写了个东西但是遇到了一个不明白的问题
#include"stdio.h"
void main()
{
int s,z,y,t,d;
char c;
printf("欢迎您使用数蛤蟆辅助器,按任意键继续数。要结束程序请直接关闭窗口。\n");
for(s=1;s<=9999;s++)
{
printf("%d只蛤蟆",s);
z=s;
printf("%d张嘴",z);
y=s*2;
printf("%d只眼睛",y);
t=s*4;
printf("%d条腿\n",t);
c=getch(); \*之前这里用的是 scanf("%d",&d);输入数字很正常我知道是因为d定义为整形变量的原因。可是输入字符的话程序会一下输出所有的结果也就是一次性数到9999只蛤蟆这是为什么呢怎么也想不明白求高手指点*\
}
}
 

------解决方案--------------------
scanf("%d",&d")
如果你输入数字,这个函数会吃掉I/O缓冲区的所有数字,故没有问题。
如果你输入非数字字符,这个函数不会吃掉I/O缓冲区字符,下次执行scanf的时候,不需等待你输入字符,直接从缓冲区的取字符,依次类推,故不等你再次输入,就显示到9999了。