把整数数组中所有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); }