نزدیک ترین عضو به آرایه در C / C++

هدف این تمرین این است که یک عدد را انتخاب کنیم و نزدیک عضو آرایه به این عدد را برگردانیم.

برای پیاده سازی این سوال اول آرایه را مرتب می کنیم و بعد اونو پیمایش می کنیم و نزدیک ترین عدد رو بر می گردونیم .

برای مرتب سازی میتونین از این مطلب استفاده کنید.

خب . یک راست بریم سر کد :

int closest(int arr[], int length, int target) {
  int min, temp, closest;
  for (int i = 0; i < length - 1; i++) {
    min = i;
    for (int j = i + 1; j < length; j++)
      if (arr[j] < arr[min])
        min = j;
    temp = arr[i];
    arr[i] = arr[min];
    arr[min] = temp;
  }

  for (int k = 0; k < i; k++) {
    if (target <= arr[0]) {
      closest = arr[0];
      break;
    }
    if (target >= arr[length - 1]) {
      closest = arr[length - 1];
      break;
    }
    if (arr[k] <= target && target <= arr[k + 1]) {
      closest = arr[k];
    }
  }

  return closest;
}