把整数数组中所有0移到末尾
把整数数组中的所有0移到末尾题目内容
1.定义函数void move(int *p,int nSize);将数组p中的0都移至数组末尾,将非0的移至开始(保持原来的顺序)不变。
2.在main函数中调用move函数
输入要求
第一行为整数n,表示数组的长度
第二行为n个整数
输出要求
移动后的数组
printf("%3d",…)
程序代码:#include <stdio.h>
#include <stdlib.h>
void move(int *p,int nSize);
int main()
{
int n,i;
int *a=NULL;
printf("请输入数据个数:");
scanf("%d",&n);
a=calloc(n+1,sizeof(int));
printf("请输入数据:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
move(a,n);
return 0;
}
void move(int *p,int nSize)
{
int a[nSize],i=0,j=0,k=0;
for(i=0;i<nSize;i++)
{
if(p[i]==0)
k++;
else
a[j++]=p[i];
}
for(i=0;i<j;i++)
printf("%3d",a[i]);
for(i=0;i<k;i++)
printf("%3d",0);
}
