检查数组的2个元素

时间:2018-06-12 12:30:44

标签: c++ arrays sorting genetic-algorithm

我有一个由

给出的20个元素的随机数组
int a[20] = {30,20,100,30,10,120,80,200,50,160,190,60,150,140,110,170,70,40,90,180};

我想从数组中拾取2个随机元素,并检查数组中是否有任何其他值落在这两个值之间。
也就是说,如果拾取的2个值是130和140,那么函数应该返回true 另一方面,如果随机拾取的2个值是130和150,则函数应返回false,因为140位于2个所选值之间。

是否有一种更简单的方法可以在C ++中检查它。

感谢。

1 个答案:

答案 0 :(得分:1)

这完全符合您的要求,仍然非常不理想,但它的工作原理:)使用任何类型的数组。

#include <iostream>
#include <time.h>


using namespace std;

bool inRange(int low, int high, int x);
int main()
    {
    const int arrayLength = 20;
    int a[arrayLength] = {130, 20, 100, 30, 10, 120, 80, 200, 50, 160, 190, 
      60, 150, 140, 110, 170, 70, 40, 90, 180};

    int random = 0;
    int random2 = 0;
    srand(time(NULL));
    random = rand() % arrayLength + 1;
    random2 = rand() % arrayLength + 5;


    for (int i = 0; i < arrayLength; ++i) {
        if (inRange(random, random2, a[i]) || inRange(random2, random,a[i])) 
        {
        return true;
      }
  }
getchar();
}

bool inRange(int low, int high, int x)
{
return (low <= x && x <= high);
}