void inputBook (int* book[4][100])
{
 int i;
 
 int k;

 
 for (k = 0, i = 0; k == 0; i++)
 {

 printf("도서번호를 입력하세요 \n");
 scanf("%d", &book[0][i]);

 printf("도서대금을 입력하세요 \n");
 scanf("%d", &book[1][i]);


 printf("더 입력하시겠습니까 yes : 0, no : 1 \n");
 scanf("%d", &k);
  
 if (k == 1)
 {
  break;
 }
   
 }

}

void inputdel (int* book[4][100])
{
 
 int first, last, mid, target, position;

 int smallestPos, k ,walk;
 int tmp;
 int i;
 position = -1;

 printf("삭제할 도서의 번호를 입력하세요 \n");
 scanf("%d", &target);

 for (first=*book[0][0], last=*book[0][99]; first<=last; )
 {
  *book[0][mid] = (first + last) / 2;
  
  if (mid > last)
  {
   printf("값이 잘못되었습니다 \n");
  }

  if (*book[0][mid] == target)
  {
   position = mid;
   book[0][mid] = 0;

   //도서정렬

   
   for (k=0; k<=98; k++)
   {
    smallestPos = k;
    for (walk = k + 1; walk <=99; walk++)
    {
     if(book[0][walk] < book[0][smallestPos])
     {
      smallestPos = walk;
     }
     tmp = *book[0][smallestPos];
     *book[0][smallestPos] = *book[0][k];
     *book[0][k] = tmp;
    }
   }

   
   printf("더 지우시겠습니까? 1.yes 2.no \n");
   scanf("%d", &i);

   if (i = 1)
   {
    return inputdel(book);
   }
   if (i = 2)
   {
   break;
   }
   else
   {
    printf("입력오류 \n");
    continue;
   }
  }
  if (*book[0][mid] < target)
   first = *book[0][mid + 1];

  else
   last = *book[0][mid -1];
 }

 

}

함수가 이렇게 2개고

int main(void)

{
 int
  *book[4][100];

 int start;

 int j;

 printf("무엇을 하시겠습니까? 1.도서입력 2.도서삭제 3.도서검색 4.도서대여 5.도서반납\n");
 scanf("%d", &start);

 if (start == 1)
 {
  inputBook(*&book);
 }
 if (start == 2)
 {
  inputdel(*&book);
 }
 if (start == 3)
 {
  searchBook(*&book);
 }
 if (start == 4)
 {
  borrowBook(*&book);
 }
 if (start == 5)
 {
  returnBook(*&book);
 }


 printf("더 하시겠습니까? 0.yes 1.no \n");
 scanf("%d", &j);

 if (j == 0)
 {
  return main();
 }
 if (j == 1)
 {
  return 0;
 }

}

메인함수는 이렇게 짰는데 바이너리 서치로 넘어가면 그냥 프로그램이 죽어버리네요;;

지적 좀 해주세요 ㅜㅜ 욕해주셔도 되요