Ben*_*ier 5 c algorithm comparison
我在C中有以下代码:
#define CONST 1200
int a = 900;
int b = 1050;
int c = 1400;
if (A_CLOSEST_TO_CONST) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
检查a,b和c中a是否是最接近CONST的值的简便方法是什么?
编辑:
如果我有3个变量或这样的数组(它可能超过3个元素)并不重要:
int values[3] = {900, 1050, 1400};
Run Code Online (Sandbox Code Playgroud)
这适用于三个变量:
if (abs(a - CONST) <= abs(b - CONST) && abs(a - CONST) <= abs(c - CONST)) {
// a is the closest
}
Run Code Online (Sandbox Code Playgroud)
这适用于包含一个或多个元素的数组,其中 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;
}
Run Code Online (Sandbox Code Playgroud)
查看它在线运行:ideone
| 归档时间: |
|
| 查看次数: |
14324 次 |
| 最近记录: |