关于冒泡法算法,该怎么处理

关于冒泡法算法
#include<stdio.h>
#include<stdlib.h>
void bubblesort(int a[],int n)
{   int exchange;
    int i,j,k;
for(i=0;i<n;i++)
{   exchange=0;
for(j=1;j<n-i;j++)
{ if(a[j-1]>a[j])
  k=a[j];
  a[j]=a[j-1];
  a[j-1]=k;
  exchange=1;
}
if(exchange!=1)
exit(0);
}
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
}
int main()
{   int i,b[6]={1,23,12,34,22,14};
for(i=0;i<6;i++)
printf("%5d",b[i]);    
bubblesort(b,6);
return 0;
}
输出结果如下图所示,为什么不能排序,求高手指导~
关于冒泡法算法,该怎么处理
------解决方案--------------------
关于冒泡法算法,该怎么处理
------解决方案--------------------
void bubblesort(int a[], int n) {
int exchange;
int i,j,k;
for(i=0; i<n-1; i++) {
exchange = 0;
for(j=1; j<n-i; j++) {
if(a[j-1] > a[j]) {
k = a[j];
a[j] = a[j - 1];
a[j - 1] = k;
exchange = 1;
}
}
if(exchange != 1)
break;
}
for(i=0; i<n; i++)
printf("%5d", a[i]);
printf("\n");
}