C语言输出问题,一段排序问题

img

img


运行这段排序代码时为什么要输入4个数字才能进入for循环,该怎么修改代码才能解决问题

你的数组a是a[2],一共就2个元素,a[0]和a[1],a[2]越界了。
把int a[2]改成 int a[3]
scanf函数修改为:
scanf("%d %d %d",&a[0],&a[1],&a[2]); //把最后一个%d后面的空格删掉

你的输入最后是回车吗?
数组a的定义我觉得好像应该是 int a[3] = {0};这样吧


for(int i=0;i<3; i++)
{
  scanf("%d",&a[i]);
}