/*
一个数组里面存储了一些数字,其中有0元素和非0元素,要求经过处理,
数组前面存储的是非0元素,后面是0元素,且非0元素保持原有顺序。然后输出。
实例:11111000003333333
处理结果:11111333333300000
*/
#include<iostream>
using namespace std;
void dealArray(int *p, int n)
{
int *tmpArray = new int[n];
for(int i = 0; i < n; i++)
{
tmpArray[i] = p[i];
}
for(int j = 0; j < n; j++)
{
p[j] = 0;
}
for(int k = 0 ,m = 0; k < n; k++)
{
if(0 != tmpArray[k])
{
p[m++] = tmpArray[k];//
}
}
delete[] tmpArray;
}
int main()
{
int a[]={1,1,1,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3};
//未处理的数组数据
for(int i = 0; i < sizeof(a)/4; i++)
{
cout<<a[i];
}
cout<<endl;
dealArray(a, sizeof(a)/4);
//处理后数据显示
for(int j = 0; j < sizeof(a)/4; j++)
{
cout<<a[j];
}
cout<<endl;
//cout<<sizeof(a)<<endl;
return 0;
}