数组逆序排列,为何重载逆序前N个数的函数Inv不起作用?
#include<iostream.h> class inve
{
private:
int a[10];
public:
inve(int x[]);
void inv();
void inv(int n);
void print();
};
inve::inve(int x[])
{
for(int i=0;i<10;i++)
a[i]=x[i];
}
void inve::inv()
{
for(int i=0;i<5;i++)
{
int temp;
temp=a[i];
a[i]=a[9-i];
a[9-i]=temp;
}
}
void inve::inv(int n) //为何函数inv(n)在运行时候不起作用?
{
int m=n/2;
for(int i=0;i<m;i++)//同理
{
int temp;
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}
}
void inve::print()
{
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
}
int main()
{
int x[10];
for(int i=0;i<10;i++)
cin>>x[i];
inve A(x);
A.print();
A.inv();
A.print();
int n;
cout<<"输入一个大于0小于10 的整数"<<endl;
cin>>n;
A.inv(n);
A.print();
return 0;
}