C语言关于short与字符数组的问题

问题代码如下:(ps:用C-Free编译)
#include

int main (void )
{
char s[]="txt";
short n;
printf ("%s\n",s);
scanf ("%d",&n);
printf ("%d%s",n,s);
return 0;
}
解果如下
图片说明
如果将上面的short型改为int型便是
图片说明
可以看出两次结果中的不同,前一次字符数组s第二次输出为空,第二次s便正常输出了,询问这是怎么一回事??是因为short不能用整型输入输出吗??

不是,因为标准定义short短整型变量不得低于16位,即两个字节,而int 4个字节。

是因为数据位截止了,存不下了