gpt4 book ai didi

c++ - 在 C++ 中查找 2 个数字的比率

转载 作者:行者123 更新时间:2023-12-03 20:22:50 24 4
gpt4 key购买 nike

我目前正在使用 Bjarne Stroustrup 的 PPP 学习 C++。有一个练习题:

Write a program that prompts the user to enter two integer values.Store these values in int variables named val1 and val2. Write yourprogram to determine the smaller, larger, sum, difference, product, andratio of these values and report them to the user.


对于比率,我希望它像 The ratio of 500 and 700 is 5:7 .我知道答案可能是
double ratio = 500/700;
但我想将其显示为 5:7而不是 500/700 = 0.714 .
我怎样才能做到这一点?
编辑: - 我就是这样做的。
#include <iostream>
#include <cmath>

void Ratio(double val1, double val2)
{
double temp1 = val1;
double temp2 = val2;
for(int num = 0; num < 20; num++)
{
if(num == 0 || num == 1)
continue;

if(std::fmod(temp1, num) == 0 && std::fmod(temp1, num) == 0)
{
temp1 /= num;
temp1 /= num;
num = 0;
}
}
std::cout<<"Ratio of " << val1 << " and " << val2 << " is " << val1 << ":" << val2<< std::endl;
}

int main()
{
Ratio(500, 700);
}

我仍然是编程的初学者,这对我来说真的很重要。
任何人都有更好的解决方案。

最佳答案

您正在使用错误的算法:为了找到两个数字之间的比率 ab ,你正在做:

calculate a/b;
do something with the result.
这是行不通的,因为计算机不理解有理数(在数学中, 1/3 is different from 0.333333333 ,但对于计算机而言,两者是相等的,因为计算机无法处理无限小数)。
因此,您需要采用另一种算法,如下所示:
calculate the greatest common divisor of a and b (ggd(a,b))
Show: a / ggd(a,b)
b / ggd(a,b)

关于c++ - 在 C++ 中查找 2 个数字的比率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67857370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com