#include <stdio.h>
#include <limits.h>
void findFloorAndCeil(const int arr[], int size, int N, int *floorval, int *ceilval) {
*floorval = INT_MIN;
*ceilval = INT_MAX;
for (int i = 0; i < size; ++i) {
int num = arr[i];
if (num <= N && num > *floorval) {
*floorval = num;
}
if (num >= N && num < *ceilval) {
*ceilval = num;
}
}
if (*floorval == INT_MIN) *floorval = -1;
if (*ceilval == INT_MAX) *ceilval = -1;
}
int main() {
int arr[] = {4, 10, 8, 2, 6, 9, 1};
int size = sizeof(arr) / sizeof(arr[0]);
int N = 5;
int floorval, ceilval;
findFloorAndCeil(arr, size, N, &floorval, &ceilval);
if (floorval == -1)
printf("floor: None\n");
else
printf("floor: %d\n", floorval);
if (ceilval == -1)
printf("ceil: None\n");
else
printf("ceil: %d\n", ceilval);
return 0;
}
/*
run:
floor: 4
ceil: 6
*/