设类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;
}