这是我需要编写的成员函数。该功能旨在减少一小部分。 void reduce();
这就是我所拥有的
void reduce()
{
num /= gcd();
den /= gcd();
}
提供了gcd功能,所以它没有错误。
它不允许我为其余的类定义包含我的代码,因为它太长了
我的问题是; 为什么我会收到reduce()
的错误我也试过
void reduce()
// reduce this fraction to simplest form. For instance,
// 2/4 will be reduced to 1/2
{
int a = gcd();
den /= a;
num /= a;
}
我的代码正在测试它:
// Test reduce
f1.reduce(); // f1 is -4/5
f2.reduce(); // f2 is 2/3
if(f1.get_numerator() != -4 || f1.get_denominator() != 5 || f2.
get_numerator() != 2 || f2.get_denominator() != 3)
{
cout <<"The reduce function was wrong.\n";
result -= 0.5;
}
答案 0 :(得分:0)
假设gcd()
返回的值取决于num
和den
,第一行中gcd()
返回的值将不同于{返回的值{ {1}}在第二行。
将gcd()
的返回值存储在局部变量中并使用它。
gcd()
向程序添加一些调试输出:
void reduce()
{
auto g = gcd();
num /= g;
den /= g;
}