링크드리스트 주소록 질문드립니다.
아론아브라함
질문 제목 : 링크드리스트 주소록 질문드립니다.질문 요약 :추가 삭제 검색을 만든느중인대 ...추가는되는대 삭제랑 검색 에서 scanf로 입력하면....오류도아니고 그냥 적용ㅇ이안되는거같습니다 ㅠㅠ 어디가문제인지알려주세요 ㅠ질문 내용 : 아래가 소스코드인대. 추가는되는대 삭제랑 출력이안되내요 .....어디가 잘못된건지 ㅠㅠ
탐색부분에서 ...하나만 출력되야는대 전체가 출력되내요.. 머가잘못된건가요???
#include stdio.h
#include stdlib.h
#include string.h
typedef struct node
{
char name[30];
int phone[30];
int age[30];
struct node *next;
struct node *prev;
}node1;
node1 *head=NULL;//머리
node1 *tail=NULL;//다음/
struct node *p;
struct node *temp;//임시저장
struct node *temp2;//임시저장
int main(void)
{
int menu=0,count=0;//매뉴,노드숫자셀거
int n=1,i;//나중에 비교삭제할떄 쓸거
while(menu!=5)
{
printf(1추가 2삭제 3정렬 4검색 5종료: );
scanf(%d,&menu);
if(menu==1)//추가
{
struct node *node1=(struct node*)malloc(sizeof(struct node));
if(head==NULL)
{
head=node1;
}
else
{
tail-next=node1;
node1-prev=tail;
}
tail=node1;
node1-next=NULL;
printf(이름:);scanf(%s,node1-name);
printf(번호:);scanf(%s,node1-phone);
printf(나이:);scanf(%s,node1-age);
count++;
printf(추가완료 현제노드수%d\n,count);
}
else if(menu==2)//삭제
{
char delname[30];
printf(제거대상 입력\n);
scanf(%s,delname);
p=head;
while(p!=NULL)
{
if(delname==p-name)
{
temp=p-prev;
temp-next=p-next;
p=NULL;
free(p);
}
p=p-next;
}
}
else if(menu==3)//정렬
{}
else if(menu==4)//검색출력
{
char sname[30];
printf(검색할 이름을 입력하세요: );
scanf(%s,&sname[30]);
p=head;
while(p!=NULL)
{
if(strcmp(sname,p-name)0)
{
printf(이름:%s\n,p-name);
printf(번호:%s\n,p-phone);
printf(나이:%s\n,p-age);
}
p=p-next;
}
}
else if(menu==5)//종료
{
}
else
{printf(잘못입력하셧습니다\n);}
}
return 0;
}
-
이퓨리한나
if문 strcmp함수에서 ==로 고처보세요