#include
#include
void PrintMenu();//메뉴
void InsertDB();//등록
void SearchDB();//검색
void PrintDB();//출력
void DeleteDB();//종료
int in;
#define DB_SIZE 100
#define NAME_LEN 20
#define TEL_LEN 20
#define ADDR_LEN 70
struct bookList
{
 char name[DB_SIZE][NAME_LEN];
 char phone[DB_SIZE][TEL_LEN];
 char address[DB_SIZE][ADDR_LEN];
}bl[DB_SIZE];
int main()
{
 PrintMenu();//메뉴
 return 0;
}
void PrintMenu()
{
 int n;
 while (1)//무한반복
 {
  printf("---------Menu--------\n");
  printf(" 1. 등록 \n");
  printf(" 2. 삭제 \n");
  printf(" 3. 검색 \n");
  printf(" 4. 출력 \n");
  printf(" 5. 종료 \n");
  printf("---------------------\n");
  printf("메뉴를 선택하세요[1-5] : ");
  scanf("%d", &n);
  getchar();
  if (1 <= n && n <= 5)
  {
   switch (n)
   {
   case 1:
    InsertDB();//등록
    break;
   case 2:
    DeleteDB();//삭제
    break;
   case 3:
    SearchDB();//검색
    break;
   case 4:
    PrintDB();//출력
    break;
   case 5:
    return ;//종료
    break;
   }
  }
  else
  {
   getchar();
   printf("다시 입력하세요[1-5]\n");
  }
 }
}
void InsertDB()
{
 char n[DB_SIZE][NAME_LEN], p[DB_SIZE][TEL_LEN], a[DB_SIZE][ADDR_LEN];
  in++;
  printf("이름 : ");
  gets(n);
  strcpy(bl[in].name, n);//입력된 이름을 저장
  printf("전화번호 : ");
  gets(p);
  strcpy(bl[in].phone, p);//입력된 전화번호를 저장
  printf("주소 : ");
  gets(a);
  strcpy(bl[in].address, a);//입력된 주소를 저장
}

void DeleteDB()
{
 printf("삭제메뉴를 선택했습니다.\n");
}
void SearchDB()
{
 printf("검색메뉴를 선택했습니다.\n");
}
void PrintDB()
{
 int i;
 if (in == 0)
 {
  printf("내용이 없습니다.\n");
  return;
 }
 for (i = 1; i  {
  printf("이름 : %s / 전화번호 : %s / 주소 :  %s \n", bl[i].name, bl[i].phone, bl[i].address);
 }
}

등록을 1번하면 출력 자체가 안되고

2번하면 첫번째 한것만 출력되는데 이거 왜이러는거냐