C语言 使用整数比较区间



首先,我知道有许多不同的更简单/可靠的方法来执行我将要问的问题,但这不是我问题的重点。

我试图比较两组整数,就好像它们是分数一样。 我的意思是假设我有一个 2d 数组:

int array[2][2];
array[0][0] = 2;
array[0][1] = 3;
array[1][0] = 1;
array[1][1] = 50;

我想如何处理这些数字是:

数组[0

][0] = 2 <---是分子

数组[0][1] = 3 <---是分母

或者在这种情况下只有 2/3。 我想做的是比较两个分数;

if(2/3 < 1/50){
  //blah blah blah code here
}

这里需要注意的是,我不能将数字转换为浮点数以保持其准确性或创建临时浮点占位符。 有没有办法仅使用整数值来比较这些值?

我也不知道我应该为这个问题标记什么,如果你想到什么让我知道,我会标记它。

将两个分子相乘以彼此的分母

IE

2/3 vs 1/50:将 50 和 1 乘以 3,然后将 2 和 3 乘以 50。

然后,您可以比较分子而无需转换为浮点数。

if(array[0][0]*array[1][1])<array[0][1]*array[1][0])
{
    // your code here
}

最直接的方法是找到最不常见的倍数,然后转换分子。之后,您可以将分子作为整数进行比较。

即 2*50 = 100; 1 * 3 = 3; ==> 100> 3

相关内容

  • 没有找到相关文章

最新更新