кодесурса
«C

Упражнения C: Найти этаж и потолок числа от 0 до 10 из отсортированного массива

script1adsense2code
script1adsense3code

Массив C: упражнение 41 с решением

Напишите программу на C, чтобы найти Floor и Ceil с числом от 0 до 10 из отсортированного массива.

Иллюстрированная презентация:

«C

Пример решения:

Код 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code