哪里出错了及出错原因

#1.  #include <stdio.h>
#2.   int main()
#3.   {  int  a[10]={21,43,55,12,65,87,25,93,30,62};
#4.      int  i,k,*pa;
#5.      for (k=0;k<10;k++)
#6.        printf("%3d",a[k]);
#7.      printf("\n\n");
#8.      for (k=0;k<9;k++)
#9.      {  pa=a;
#10.         for (i=0;i<10-k-1;i++)
#11.         {  if ( *pa>*(pa+1) )
#12.            {  temp=*pa; *pa=*(pa+1); *(pa+1)=temp;
#13.            }
#14.            pa++;
#15.         }
#16.       }
#17.       for (k=0;k<10;k++)
#18.         printf("%3d",*pa++);
#19.       printf("\n\n");
#20.       return 0;
#21.    }

你这个冒泡排序逻辑写的基本没问题 ,但是在输出结果的时候不能用pa这个指针,因为在最后一次的冒泡时 , pa会自加 , 导致pa指向的不是a[0],指向的时a[1],导致输出结果错误。所以你只要在输出结果时pa换成a就行 。