هدف این تمرین این است که یک عدد را انتخاب کنیم و نزدیک عضو آرایه به این عدد را برگردانیم.
برای پیاده سازی این سوال اول آرایه را مرتب می کنیم و بعد اونو پیمایش می کنیم و نزدیک ترین عدد رو بر می گردونیم .
برای مرتب سازی میتونین از این مطلب استفاده کنید.
خب . یک راست بریم سر کد :
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;
}
