要实现分数相加并输出最简形式的结果,可以按照以下步骤进行:
输入分数:
分别输入两个分数的分子和分母。
通分:
找到两个分数分母的最小公倍数(LCM),将两个分数转换为具有相同分母的分数。
相加:
将具有相同分母的分数的分子相加。
化简:
将相加后的分数化简为最简形式。
输出结果:
输出化简后的分数。
```cpp
include include class Fraction { public: int numerator; int denominator; Fraction(int num = 0, int den = 1) : numerator(num), denominator(den) {} // Function to calculate the greatest common divisor (GCD) int gcd(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; } // Function to add two fractions Fraction add(const Fraction& other) { int newNumerator = numerator * other.denominator + other.numerator * denominator; int newDenominator = denominator * other.denominator; int commonDivisor = gcd(numerator, other.numerator); return Fraction(newNumerator / commonDivisor, newDenominator / commonDivisor); } // Function to convert fraction to string for easy output std::string toString() const { return std::to_string(numerator) + "/" + std::to_string(denominator); } }; int main() { int num1, den1, num2, den2; // Input the first fraction std::cout << "Enter the numerator and denominator of the first fraction: "; std::cin >> num1 >> den1; // Input the second fraction std::cout << "Enter the numerator and denominator of the second fraction: "; std::cin >> num2 >> den2; // Create fractions Fraction fraction1(num1, den1); Fraction fraction2(num2, den2); // Add the fractions Fraction result = fraction1.add(fraction2); // Output the result std::cout << fraction1.toString() << "+" << fraction2.toString() << "=" << result.toString() << std::endl; return 0; } ``` 代码说明: 定义了一个分数类,包含分子和分母,并提供了计算最大公约数(GCD)和分数相加的方法。 使用欧几里得算法计算两个数的最大公约数。 计算两个分数的和,并返回一个新的分数对象。 将分数转换为字符串,便于输出。 从用户输入读取两个分数的分子和分母,创建分数对象,调用add函数计算结果,并输出结果。 这个程序可以处理用户输入的分数,并输出最简形式的分数和。Fraction类:
gcd函数:
add函数:
toString函数:
main函数: