描述
编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接收数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。
输入时首先读入数组长度,再依次读入每个元素。
将调用此函数后得到的数组和函数返回值输出。
输入
第一行一个数n,表示数组长度(本行以换行符结尾,不带空格)。
第二行n个数,表示输入数组的元素,数之间以空格分隔。
输出
输出一行调用此函数后的数组。注意:第一行输出数组的末尾不要带多余的空格。
输入样例 1
7 2 0 4 3 0 0 5
输出样例 1
2 4 3 5 4
代码:
#include<stdio.h>
void CompactIntegers(int a[],int n)
{
int i,j=0;
int b[100];
for(i=0;i<n;i++)
{
if(a[i]!=0)
{
b[j]=a[i];
j++;
}
}
for(i=0;i<j-1;i++)
{
printf("%d ",b[i]);
}
printf("%d\n",b[j-1]);
printf("%d",j);
}
int main()
{
int n,i;
scanf("%d\n",&n);
int a[100];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
CompactIntegers(a,n);
return 0;
}