- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在做一个分数作业,提示用户输入两个分数,然后我对这两个分数进行加、减、乘和除。我知道我仍然需要减少分数,但是我不明白为什么分母要乘以 10。如果我为 frac1 输入 1 1/2,为 frac2 输入 2 2/5,分母是 100 而不是 10 . 太奇怪了..任何指导表示赞赏! :)
// fraction9.cpp : main project file.
#include "stdafx.h"
#include<conio.h>
#include<iostream>
#include<string>
using namespace std;
class Fraction
{
private:
int whole;
int numerator; // may be any integer
int denominator; // should always be positive
public:
Fraction(); // Set numerator = 0, denominator = 1.
Fraction(int w, int n, int d=1); // constructor with parameters
// acts as conversion constructor
// operator overload as member
Fraction operator+ (const Fraction& f) const;
Fraction operator- (const Fraction& f) const;
Fraction operator* (const Fraction& f) const;
Fraction operator/ (const Fraction& f) const;
// standard input/output routines
void Input(); // input a fraction from keyboard.
void Show() const; // Display a fraction on screen
// accessors
int GetWhole() const;
int GetNumerator() const;
int GetDenominator() const;
// mutator
bool SetValue(int w, int n, int d=1); // set the fraction's value through parameters
//double Evaluate() const; // Return the decimal value of a fraction
};
Fraction Fraction::operator+(const Fraction& f) const
// operator overload for + written as member function
{
Fraction r; // result
r.numerator = (denominator * whole + numerator) * f.denominator + (f.denominator * f.whole + f.numerator) * denominator;
r.denominator = (denominator * f.denominator);
return r;
}
Fraction Fraction::operator-(const Fraction& f) const
// operator overload for - written as member function
{
Fraction r; // result
r.numerator = (denominator * whole + numerator) * f.denominator - (f.denominator * f.whole + f.numerator) * denominator;
r.denominator = (denominator * f.denominator);
return r;
}
// operator overload for * written as member function
Fraction Fraction::operator*(const Fraction& f) const
{
Fraction r; // result
r.numerator = ((denominator * whole + numerator) * (f.denominator * f.whole + f.numerator));
r.denominator = (denominator * f.denominator);
return r;
}
// operator overload for / written as member function
Fraction Fraction::operator/(const Fraction& f) const
{
Fraction r; // result
r.numerator = ((denominator * whole + numerator) * f.denominator);
r.denominator = (denominator * (f.denominator * f.whole + f.numerator));
return r;
}
Fraction::Fraction()
// Default constructor. Initializes fraction to 0/1
{
whole = 0;
numerator = 0;
denominator = 1;
}
Fraction::Fraction(int w, int n, int d)
// initializes fraction to n/d (defaults to 0/1 if invalid data)
{
if (SetValue(w, n, d) == false)
SetValue(0, 0, 1);
}
void Fraction::Input()
{
cout << "Enter whole number ";
cin >> whole;
cout << "Enter numerator " ;
cin >> numerator;
cout << "Enter denominator ";
cin >> denominator;
if (denominator <= 0)
cout << "*** Denominator must be positive. Try again: ";
while (denominator <= 0)
{
cout << "Please re-enter the denominator of the fraction, it cannot be 0" << endl;
cin >> denominator;
};
}
void Fraction::Show() const
// Display a fraction
{
cout << whole << " " << numerator << '/' << denominator;
}
int Fraction::GetWhole() const
{
return whole;
}
int Fraction::GetNumerator() const
{
return numerator;
}
int Fraction::GetDenominator() const
{
return denominator;
}
bool Fraction::SetValue(int w, int n, int d)
// sets fraction to n/d and returns true for success (good data)
// returns false and leaves fraction alone if bad data
{
if (d <= 0)
return false;
numerator = n;
denominator = d;
return true;
}
// Driver routine to test the Fraction class
int main()
{
Fraction f1, f2;
cout << "Enter first fraction: ";
f1.Input();
cout << "\n You entered ";
f1.Show();
cout << "\n Enter second fraction: ";
f2.Input();
cout << "You entered ";
f2.Show();
cout << "\n The sum of the first and second fraction is ";
Fraction Aresult;
Aresult = f1 + f2;
Fraction Sresult;
Sresult = f1 - f2;
Fraction Mresult;
Mresult = f1 * f2;
Fraction Dresult;
Dresult = f1 / f2;
Aresult.Show();
Sresult.Show();
Mresult.Show();
Dresult.Show();
cout << '\n';
_getch();
return 0;
}
最佳答案
那些额外的零没有附加到分母上。它们是您串在一起的带分数的全部部分。
结果其实是
0 39/10
0 -9/10
0 36/10
0 15/24
但是您将它们打印在一行中:
0 39/100 -9/100 36/100 15/24
关于c++ - 重载运算符 C++ : Why is denominator being multiplied by 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12995027/
本文整理了Java中denominator.model.Zone类的一些代码示例,展示了Zone类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些
本文整理了Java中denominator.model.Zone.id()方法的一些代码示例,展示了Zone.id()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Mav
本文整理了Java中denominator.model.Zone.ttl()方法的一些代码示例,展示了Zone.ttl()的具体用法。这些代码示例主要来源于Github/Stackoverflow/M
本文整理了Java中denominator.model.Zone.create()方法的一些代码示例,展示了Zone.create()的具体用法。这些代码示例主要来源于Github/Stackover
本文整理了Java中denominator.model.Zone.email()方法的一些代码示例,展示了Zone.email()的具体用法。这些代码示例主要来源于Github/Stackoverfl
/* * To change this license header, choose License Headers in Project Properties. * To change this
作为学习过程中的个人练习 haskell ,我正在尝试移植此 F# Random Art 的片段. 我没有嵌入完整的源代码以防止问题膨胀,但可用作 gist . 该程序的一个重要部分是 Expr类型:
我正在做一个分数作业,提示用户输入两个分数,然后我对这两个分数进行加、减、乘和除。我知道我仍然需要减少分数,但是我不明白为什么分母要乘以 10。如果我为 frac1 输入 1 1/2,为 frac2
这是我确定“两个数的最大公分母”的程序 integer1 = int(input("Enter an integer:")) integer2 = int(input("Enter an intege
如何计算 F(n)%mod 其中 mod 是质数。和 F(n)=n!/(q!^r)%mod....(x^r 代表 pow(x,r) )。 我正在尝试使用费马小定理来计算逆模,但我面临的问题是费马仅在
int.numerator 和 int.denominator 对我来说是个谜。 help(int.numerator) 状态: the numerator of a rational number
我最近遇到了一个查询导致全表扫描的问题,归结为一个列的定义与我认为的不同,它是 VARCHAR 而不是 INT。当使用“string_column = 17”查询时,查询运行了,只是无法使用索引。这真
我很尴尬地说,我的数学技能很弱,而且我是一名自豪的计算机科学专业。我正在上课,这真是太令人难以承受了。这是我家庭作业的一部分,但是,在理解这一部分之前我无法继续。我类的每个人都在努力编写某种方法来完成
这个问题是面试中难度越来越大的问题的一部分。它的开始非常简单: (1) Assuming an infinite supply of coins (in the usual 1, 5, 10, 25
以下代码 double total = 0.0; //do something for total, anyway return total < 10E-6 ? 0 : (1.0 / total);
a := 12 / 24. a 是分配了分数 12/24 的变量。 1/2 是打印时的答案。现在打开检查弹出窗口,我更改分子和分母的值,并猜测答案与之前相同,1/2。真正发生的是输出保持 12/24,
我正在处理金钱的 float64 表示。例如,2.9 美元表示 2.90 美元,因此如果我需要将其转换为该货币的最低面额,我只需乘以 100(2.9*100= 290 美分)。 这适用于大多数主要货币
我是一名优秀的程序员,十分优秀!