잘안돼네요
훌림목
2023.04.01
nodeptr preoname(nodeptr n0,char name[5],nodeptr t){//첫번쨰이름의 선조 찿는다
int i,a;
nodeptr nc=n0;
if(t!=nc&&nc!=0){
printf(www%d 확인%s\n,n0-count, n0-name );
if(strcmp( n0-name,name)==0)
{nup=n0; return nc;goto e;}//전역변수이용 찿은 값 간단히 보내기
for(i=0;in0-count;i++)
{
n0=preoname(n0-sub[i],name,t);}
e: if(strcmp( n0-name,name)==0)
return n0 ; //여기서 리턴 없애면 실행중 오류가발생합니다
}
//에러메시지출력
printf(일치하는 이름이 없습니다);
}
재귀 함수에서 리턴을 할경우 재귀 순회가 멈추어 버리고 리턴을 안할경우 실행중 오류발생으로 멈추는데 어떻게 해야
제대로 된 값을 리턴할수 있죠 ? 도와주세요 ㅜㅜ
-
작약
goto 문을 사용하는 것은 바람직하지 않습니다.
더구나 for 문의 중간으로 들어가는 것은 더더욱 잘못되어 있는 코드가 됩니다.