基础问题,高分求解!!!***急不容缓***
wwtmw 2001-07-25 12:31:01
#include <iostream.h>
//问题都在下面的几个函数:
//问题1.要求添加array的数目,最后的元素初始化为0
//问题2.最后的元素改变为6
//问题3.顺序转换,使元素的内容由0变5,4变1,。。。
//问题4.把最后的元素cut掉
class Array
{
public:
void initialize(int n) ///////// Pass
{
length=n;
realloc(length);
for (unsigned i=0;i<length;i++)
ptr[i]=0;
}
void print() const ///////// Pass
{
cout<<"Here is :"<<endl;
for (unsigned i=0;i<length;i++)
cout<<"\t"<<ptr[i];
cout<<endl;
}
unsigned get_length() const ///////// Pass
{ return length; }
void store(unsigned i1,unsigned i2) ///////// Pass
{
ptr[i1]=i2;
cout<<"After store() ";
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//问题都在下面的几个函数:
void increment()
{//问题1.要求添加array的数目,最后的元素初始化为0
cout<<"After increment()";
}
void append(int num)
{//问题2.最后的元素改变为6
cout<<"After append()";
}
void reverse()
{//问题3.顺序转换,使元素的内容由0变5,4变1,。。。
for (unsigned i=0;i<length/2;i++)
aswap(&ptr[i],&ptr[int(length)-i]); ////为什么会出错??
cout<<"After reverse()";
}
void trunc()
{//问题4.把最后的元素cut掉
cout<<"After trunc()";
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
void del() const ///////// Pass
{ delete [] ptr; }
private:
int *ptr;
unsigned length;
void realloc(int len) ///////// Pass
{
length=len;
ptr=new int[length]; //// Just ptr
}
private:
void aswap(int *p,int *q)/// maybe can use in reverse()
{
int temp;
temp=*p;
*p=*q;
*q=temp;
}
};
int main(void)
{
const int dim=5;
Array A;
A.initialize(dim);
A.print();
for (unsigned i=0;i<A.get_length();++i)
A.store(i,i);
A.print();
A.increment();
A.print();
A.append(6);
A.print();
A.reverse();
A.print();
A.trunc();
A.print();
A.del();
return 0;
}
/***********************************************************
//在编译上面问题函数的时候有很多不明错误出现,不得其解,我会继续加分!!
//已经经过思考,还是得不到答案,只有求助大家。
/***********************************************************