Бинарный поиск - C (СИ) (70554)
Формулировка задачи:
Добрый день, пытаюсь реализовать бинарный поиск, но никак не получаеться. Подскажите в чем может быть проблема?
#include <stdio.h>
#include <cs50.h>
#include <ctype.h>
int main(void)
{
bool search(int,int[],int);
int values[] = {1,2,3,4,5,6,7,8,9,10};
printf("Enter the number which you want to find:");
int value = getchar();
int n = sizeof(values) / sizeof(values[0]);
bool score = search(value, values, n);
if(score == true){
printf("The number is here\n");
}
else{
printf("The nubmer isn't here\n");
}
}
bool search (int value, int values[], int n)
{
int lower = 0;
int upper = n-1;
while(lower <= upper)
{
int middle = (lower + upper)/2;
if(values[middle] == value)
{
return true;
}
if(values[middle] > value)
{
upper = middle - 1;
}
if(values[middle] < value)
{
lower = middle + 1;
}
}
return false;
}Решение задачи: «Бинарный поиск»
textual
Листинг программы
int value = getchar();
Объяснение кода листинга программы
- Вводится значение переменной
valueс помощью функцииgetchar. - Значение переменной
valueиспользуется для выполнения операций в коде.