为什么这个代码会出错。

#include<stdio.h>
#define NUM 4
int main()
{int arr[NUM],i,j,teap;

printf("input%dnumbers:\n",NUM);
for(i=0;i<NUM;i++)
scanf("%d",&arr[i]);

for(i=0;i<NUM-1;i++)
   { for(j=0;j<NUM-1-i;j++)
      {if(arr[j]>arr[j+1])
        {teap=arr[j];
         arr[j]=arr[j+1];
         arr[j+1]=teap;
  }
     }
        }
  printf("after sort:\n");
  for(i=0;i<NUM;i++)
  printf("%d",arr[i]);
  return 0;
}

我用两组数据,测试了一下,发现代码逻辑没问题,就是打印的时候,加个空格就好了。

for(i=0;i<NUM;i++)
  printf("%d ",arr[i]);

可能是你代码练习的少,多用书上的例子,敲一敲,多做点练习应该就会好一点。