x没有初始化while(scanf("%d",&n)!=EOF&&n){ x=1; ...............这样就ok了原因呢,就是因为如果数组有序,x将不会被赋值,那么x本身是个无效值然后到,a[1]=a[x];a[x]=t;这里,x值无效,自然结果也是错的了
试下4 4 5 6 1 4 4 5 6 7 两组数据,你就会发现错误;是你的f记录i的值时,上一轮的值可能会在下一轮用上; 在while下加f=0;就ok了,