我在C中有以下代码:
#define CONST 1200 int a = 900; int b = 1050; int c = 1400; if (A_CLOSEST_TO_CONST) { // do something }
检查a,b和c中a是否最接近CONST的便捷方法是什么?
编辑:
我有3个变量或像这样的数组都没关系(可能超过3个元素):
int values[3] = {900, 1050, 1400};
这适用于三个变量:
if (abs(a - CONST) <= abs(b - CONST) && abs(a - CONST) <= abs(c - CONST)) { // a is the closest }
这适用于一个或多个元素的数组,其中n是元素数:
int is_first_closest(int values[], int n) { int dist = abs(values[0] - CONST); for (int i = 1; i < n; ++i) { if (abs(values[i] - CONST) < dist) { return 0; } } return 1; }
看到它在线上工作:ideone