有理数的乘法逆

时间:2015-03-10 05:45:35

标签: c++ unix

下面是存根程序,反函数返回有理数的乘法逆。

#include <iostream>
using namespace std;

unsigned inverse(unsigned&, unsigned&);

int main()
{
    unsigned p, q;

    cout << "Enter a rational number ==> ";
    cin >> p >> q;
    inverse(p, q);
    cout << p << ":" << q << endl;

    return 0;
}

unsigned inverse(unsigned& p, unsigned& q) 
// returns the multiplicative inverse
{
   unsigned swap;
   swap = p;
   p = q;
   q = swap;

   return p;
}

我试图将反函数合并到一个更大的程序中,我发现很难这样做。函数头必须是Rational inverse() const;这是Rational类中的成员函数。 _p和_q在类中声明。该函数是一个const,所以我不能改变_p和_q的值。任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:0)

如果我能正确理解您的问题,您会希望Rational inverse() const的正文包含一些内容。首先创建一个您有权修改的新Rational。然后将此Rational设置为反向并从函数返回它。

Rational inverse() const {
   Rational temp; // creates Rational you can modify
    //..appropriate operations on temp to ....
    //..set temp._p and temp._q to be the inverse...
   return temp; 
}

确保从函数调用中收集理性,如下所示:

int main(){
   Rational a;
   Rational inverseOfa = a.inverse();
   return 0;
}