用C语言写程序。。。

设类A定义如下,(1)定义类的构造函数, 析构函数,输出函数view ()以及功能函数 fun (): 要求将所有0元素排在这批数的后面,并统计0的个数 (2)定义测试函数 main (),能够引用类的成员函数 (提示:主函数中输入一批整型数包含多个 0)。 class A {private: int*p, size;public A (int*q, int n);//构造函数void view ();/输出函 数int fun ();//功能函数~A()); 1/析构函数

代码如下,如有帮助,请采纳一下,谢谢。


#include <stdio.h>

class A
{
public:
	A(int* p,int size)
	{
		mArry = new int[size];
		for (int i = 0; i < size; i++)
		{
			mArry[i] = p[i];
		}
		mLen = size;
	}
	~A()
	{
		if (mArry)
		{
			delete[] mArry;
			mArry = 0;
		}
	}
	void view()
	{
		for (int i = 0; i < mLen; i++)
		{
			if(i < mLen -1)
				printf("%d ",mArry[i]);
			else
				printf("%d",mArry[i]);
		}
	}
	int fun()
	{
		int ind = 0;
		int nmb = 0;
		int *b = new int[mLen];
		for (int i = 0; i < mLen; i++)
		{
			if (mArry[i] != 0)
			{
				b[ind] = mArry[i];
				ind++;
			}else
				nmb++;
		}
		for (int i = 0; i < mLen - nmb; i++)
		{
			mArry[i] = b[i];
		}
		for (int i = 0; i < nmb; i++)
		{
			mArry[mLen - nmb + i] = 0;
		}

		delete[] b;
		b = 0;
		return nmb;
	}
private:
	int* mArry;
	int mLen;
};




int main()
{
	printf("请输入数字个数:");
	int n;
	int a[100];
	scanf("%d",&n);
	printf("请输入数字:");
	for (int i = 0; i < n;i++)
	{
		scanf("%d",&a[i]);
	}

	A aa(a,n);
	int nmb = aa.fun();
	printf("0的个数:%d\n",nmb);
	aa.view();

	getchar();
	getchar();
	return 0;
}