Description:
编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接收数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。
输入时首先读入数组长度,再依次读入每个元素。
将调用此函数后得到的数组和函数返回值输出。
Input:
第一行为一个整形,表示数组长度。
第二行为对应数量的数组元素。
Output:
第一行为函数调用后的数组。
第二行为函数调用后的返回值。
Sample Input 1 :
7 2 0 4 3 0 0 5
Sample Output 1:
2 4 3 5
4
代码:
include <iostream>
using namespace std;
#define MAX 100
int CompactIntegers(int n, int *a);
int b[MAX];
int CompactIntegers(int n, int *a)
{
int i,j;
for(i = 0,j = 0; i < n; i++){
if(a[i] != 0)
b[j++] = a[i];
}
return j;
}
int main()
{
int count,i;
cin>>count;
int array[MAX];
for(i = 0; i < count; i++) {
cin>>array[i];
}
count = CompactIntegers(count,array);
for(i = 0; i < count; i++) {
cout<<b[i]<<" ";
}
cout<<endl;
cout<<count<<endl;
return 0;
}