#include <stdio.h>
int count=0;
void fun(int *a, int n){
int i,j,k;
int *b;
b = (int *) malloc(sizeof(int)*n);//开一个一样大小的临时数组
for (i=0;i<n;i++) b[i]=0;//把数组赋初值为0
k=0;
for (i=0;i<n;i++){
if (a[i] != 0) {
b[k]=a[i];k++;
count+=1;
}//把a数组中的非零元素按顺序放到b数组中
}
for (i=0;i<n;i++) a[i]=b[i];//复制数组
}
void bubble_sort(int a[],int n){
int i, j, temp;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
{
if (a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
main(){
int A[]={1,0,3,4,0,-3,5};
int i,n=7;
for (i=0;i<n;i++) printf("%d ",A[i]);
fun(A,n);//移动0元素到数组末尾
bubble_sort(A,count);//对非零元素进行排序
printf("\n");
for (i=0;i<n;i++) printf("%d ",A[i]);
return 0;
}