注册 登录
编程论坛 VC++/MFC

数组逆序排列,为何重载逆序前N个数的函数Inv不起作用?

黄大容 发布于 2013-10-27 20:20, 413 次点击
#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;
}
2 回复
#2
yuccn2013-10-27 21:08
n怎么个不起作用发?你输入的n是什么?
#3
黄大容2013-10-27 21:47
回复 2楼 yuccn
是1到10的一个随机整数,由键盘输入,作用是逆序排列10个元素中的前N个数
1