c언어 초보인데 도와주실분 구합니다.

코딩코딩가즈아의 이미지

다른 문제는 다 알고 있어서 풀었는데 이 문제만 모르겟어요 ㅠㅠ 어떻게 코딩을 해야하는지도 모르겟고,.,
문제는 아래에 있어요
이진 탐색 알고리즘을 이용하여 조건 3의 key 값을 탐색하는 과정을 서술하라.
조건1: 이진 탐색 알고리즘은 함수 이진탐색(비순환 함수)을 사용

조건 2 : int x[10]={13,18,20,22,27,29,30,34,38,41}

조건 3 : key = 34

구글링의 이미지

line by line으로 동작들을 구현하면 쉽게 만들수있어요.
우선 이진탐색의 동작과정을 아셔야할거같아요..
이진탐색은 오름차순으로 정렬된 배열인것이 전제조건이구요
배열의 중간을 시작위치로잡고 찾으려는값이 현재위치의 값보다 크냐? 크면 오른쪽에서탐색 작으면 왼쪽에서 탐색하는거에요.
Binary_search(int key) 이런식으로 함수를만들어서 input으로 받은 key값을 탐색시키는건데
자세한구현은 구글링으로..

익명 사용자의 이미지

#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
 
static const int x[10] = {13,18,20,22,27,29,30,34,38,41};
static const int key = 34;
 
int cmp(const void *lhs, const void *rhs){
    return *(const int *)lhs - *(const int *)rhs;
}
 
int main(){
    const int *p = (const int *)bsearch(&key, x, sizeof(x)/sizeof(x[0]), sizeof(x[0]), cmp);
 
    if (p){
        const ptrdiff_t idx = p - x;
        printf("x[%td] = %d\n", idx, key);
    }
    else
        puts("not found");
 
    return 0;
}