Упражнения C: Найти этаж и потолок числа от 0 до 10 из отсортированного массива
Массив C: упражнение 41 с решением
Напишите программу на C, чтобы найти Floor и Ceil с числом от 0 до 10 из отсортированного массива.
Иллюстрированная презентация:
Пример решения:
Код C:
#include <stdio.h>
int FindCeil(int arr1[], int n, int x)
{
int low = 0, high = n - 1, mid;
int ceil = -1;
while (low <= high)
{
mid = (low + high) / 2;
if (arr1[mid] == x)
return arr1[mid];
else if (x < arr1[mid])
{
ceil = arr1[mid];
high = mid - 1;
}
else
low = mid + 1;
}
return ceil;
}
int FindFloor(int arr1[], int n, int x)
{
int low = 0, high = n - 1, mid;
int floor = -1;
while (low <= high)
{
mid = (low + high) / 2;
if (arr1[mid] == x)
return arr1[mid];
else if (x < arr1[mid])
high = mid - 1;
else
{
floor = arr1[mid];
low = mid + 1;
}
}
return floor;
}
int main()
{
int arr1[] = { 1, 3, 5, 7, 8, 9 };
int ctr = sizeof(arr1) / sizeof(arr1[0]);
int i;
//------------- print original array ------------------
printf("The given array is : ");
for(i = 0; i < ctr; i++)
{
printf("%d ", arr1[i]);
}
printf("\n");
//--------------------------------------------
for (int i = 0; i <= 10; i++)
{
printf("Number: %d ", i);
printf("ceiling is: %d ", FindCeil(arr1, ctr, i));
printf("floor is: %d\n", FindFloor(arr1, ctr, i));
}
return 0;
}
Пример вывода:
Данный массив: 1 3 5 7 8 9 Номер: 0 Потолок: 1 этаж: -1 Номер: 1 потолок это: 1 этаж это: 1 Номер: 2 Потолок: 3 Этаж: 1 Номер: 3 потолок есть: 3 этаж есть: 3 Номер: 4 Потолок: 5 Этаж: 3 Номер: 5 Потолок: 5 Этаж: 5 Номер: 6 потолок есть: 7 этаж есть: 5 Номер: 7 потолок есть: 7 этаж есть: 7 Номер: 8 Потолок: 8 Этаж: 8 Номер: 9 Потолок: 9 Этаж: 9 Номер: 10 Потолок: -1 Этаж: 9
Блок - схема:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Previous: написать программу на C для поворота массива на N позиций
Далее: Напишите программу на C, чтобы найти наименьший отсутствующий элемент из отсортированного массива.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code