Friday 10 November 2017

C Program to Find Ceiling & Floor of X given a Sorted Array & a value X


Code:

#include

/* Function to get index of ceiling of x in arr[low..high] */
int ceilSearch(int arr[], int low, int high, int x)
{
     int i;

    /* If x is smaller than or equal to first element,then return the first element */
    if (x <= arr[low])
    return low;

   /* Otherwise, linearly search for ceil value */
   for (i = low; i < high; i++)
   {
       if (arr[i] == x)
          return i;

       /* if x lies between arr[i] and arr[i+1] including arr[i+1], then return arr[i+1] */
       if (arr[i] < x && arr[i + 1] >= x)
           return i + 1;
   }

   /* If we reach here then x is greater than the last element of the array,  return -1 in this case */
   return -1;
}

int main()
{
    int arr[] = {1, 2, 8, 10, 10, 12, 19};
    int n = sizeof(arr)/sizeof(arr[0]);
    int x = 3;
    int index = ceilSearch(arr, 0, n-1, x);
    if (index == -1)
        printf("Ceiling of %d doesn't exist in array ", x);
    else
        printf("ceiling of %d is %d", x, arr[index]);
    getchar();
    return 0;
}

Output:

ceiling of 3 is 8


More C Programs











100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...