#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;
}
本文介绍了一个使用C语言实现的程序,该程序能够将整型数组中的零元素移至数组末尾,并对非零元素进行冒泡排序。通过定义函数`fun()`来处理数组中的零元素,并使用`bubble_sort()`函数完成排序操作。

2784

被折叠的 条评论
为什么被折叠?



