<分区>
假设我们有一个没有任何库的 C(嵌入式世界)。我想知道一些好的实现来计算数组中在定义的偏移量附近彼此接近的多数数。 示例(偏移量 +/- 10):
array(1, 5, 9, 50, 2, 54, 3, 1, 58, 59, 56, 54, 48, 2), result 7
array(1, 5, 4, 8, 60, 500, 200, 7, 2, 4, 1, 2, 4), result 10
<分区>
假设我们有一个没有任何库的 C(嵌入式世界)。我想知道一些好的实现来计算数组中在定义的偏移量附近彼此接近的多数数。 示例(偏移量 +/- 10):
array(1, 5, 9, 50, 2, 54, 3, 1, 58, 59, 56, 54, 48, 2), result 7
array(1, 5, 4, 8, 60, 500, 200, 7, 2, 4, 1, 2, 4), result 10
最佳答案
我会一次取一个数字,然后检查它的“x 范围”中有多少个数字。
迭代数组并检查每个数字:
For (int i = 0; i < array.length; i++){
int sum = 0
int result = CheckNumbersInRange(i, array, range)
if (result > sum)
sum = result;
}
//现在你有了你想要的数字。
现在您只需要编写一个函数来检查数组[i] 范围内有多少个数字。 在那里你可以再次迭代整个数组并比较每个元素并在每次满足条件时对其进行计数。最后返回范围内的元素数。
int CheckNumbersInRange(int i, int array[], int range){
int sum = 0;
for(int j = 0; j < a.length; j++){
if (array[i] < (array[j] + range) && array[i] > (array[j] - range))
sum++;
}
return (sum -1); // because the array[i] will count up itself.
}
关于c - 如何计算数组中相似数字的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26676851/