#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

#define SIZE 100
 struct person {      //이름과 번호 구조체
 char name[15];
 char pnumber[15];
}data[SIZE];

int i=-1;

void insert(void);
void del(void);
void list(void);
void search(void);

int main(void)
{
 int n=1;
 while (1)
 {
  printf("-------------전화번호부----------\n");
  printf("             1.입력\n");
  printf("             2.삭제\n");
  printf("             3,목록\n");
  printf("             4.검색\n");
  printf("             5.종료\n");
  scanf("%d", &n);
  switch (n)
  {

  case 1:
   insert();
   break;
  case 2:
   del();
   break;
  case 3:
   list();
   break;
  case 4:
   search();
   break;
  default :
   printf("잘못 입력하였습니다.\n");
  }

 }

}

void insert(void) //입력
{
 
 char n[15], pn[15];
 while (1)
 {
     i++;
  printf("이름을 입력하세요. (종료시 0 입력) \n");
  scanf("%s", n);
  if (n[0] == '0')
   return;
  strcpy(data[i].name, n);
  printf("전화번호를 입력하세요. \n");
  scanf("%s", pn); 
  strcpy(data[i].pnumber, pn);
 }
}

void del(void)
{
 int result;
 char n[15], pn[15];
 printf("삭제할 이름을 입력하세요. \n");
 scanf("%s", n);
 result = strcmp(data[i].name, n);
 if (result == 0) {
   strcpy(data[i].name, data[i + 1].pnumber);
   strcpy(data[i].pnumber, data[i + 1].pnumber);
 }
 else
  printf("없는 이름입니다.\n");
}

void list(void)
{
 int j;
 if (i == -1){
  printf("저장된 번호가 없습니다.");
  return;
 }
 for (j = 0; j < i; j++) {
  printf("이름 :%s     전화번호 :%s \n", data[i].name, data[i].pnumber);
 }
 
}
void search(void)
{
 int result;
 char n[15];
 printf("검색할 이름을 입력하시오. \n");
 scanf("%s", n);
 result = strcmp(data[i].name, n);
 if (result == 0){
  printf("이름:%s            전화번호:%s", data[i].name, data[i].pnumber);
 }
 else
  printf("입력 값에 대한 정보가 없습니다.\n");
}


del , list , search 함수가 제대로 돌아가지 않는데 왜그런건가요

하루종일 이것만 붙잡고 있었네요