재귀함수 공부하다 이해가 안가서 질문드려요
PinkPearl
질문 제목 : 재귀함수소스결과가 이해가잘안가요질문 내용 :
#includestdio.h
void banbok(int num);
void main()
{
banbok(0);
}
void banbok(int num)
{
if(num10)
{banbok(num+1);
printf(%d\n, num);
}
}
이소스의 결과가 0,1,2,3,4,5,6,7,8,9,가 아니라 역순인 9,8,7,6,5,4,3,2,1,0 로 나오는데 그이유를 알고싶습니다.
-
화이트 2024-05-31
이거 궁금했는데 답변 잘 읽었습니다
-
한샘가온 2024-05-31
질문게시판에서는 덧글을 포함해서 반드시 돋움체 또는 굴림체를 사용해야 됩니다.
이 폰트로 계속해서 덧글을 쓰면 탈퇴가 됩니다.
폰트를 설정하는 방법은 자신의 블로그에서 추가한 폰트를 전부 지우면 됩니다. -
그린나래 2024-05-31
좋은정보 얻어갑니다
-
친화력 2024-05-31
질문게시판에서는 덧글을 포함해서 반드시 돋움체 또는 굴림체를 사용해야 됩니다.
이 폰트로 계속해서 덧글을 쓰면 탈퇴가 됩니다.
폰트를 설정하는 방법은 자신의 블로그에서 추가한 폰트를 전부 지우면 됩니다. -
채움늘 2024-05-31
아 이제알겠네요. 정말 감사합니다 ^^
-
팬지 2024-05-31
음..
banbok(0)이 호출이되면 재귀적으로 계속 banbok이 호출이 됩니다. 호출되는 함수들은 바로 리턴하지않습니다. 계속 자기의 num보다 1을 더한 함수를 재귀적으로 호출하죠 그럼 banbok(num+1)로 흐름이 넘어갑니다. printf는 나중에 banbok(num+1)이 리턴을해서 흐름이 banbok(num)으로 돌아오면 하게되는거구요. 리턴을 언제 하게되냐면... 여기서는 banbok(10)에서 더이상 재귀 호출을 하지않고 처음 리턴을 -
이든샘 2024-05-31
알아서 큰 순서로 정리가 되는건 아닙니다. 위 같은 경우에는 num이 0 일때 다시 banbok 함수로 들어갑니다. 들어갈때에는 +1을 하여 1이 됩니다. 그 다음에 또 banbok 함수를 만납니다. 이제는 2로 banbok 함수에 들어갑니다. 이렇게 10까지 증가하면 그제야 if를 불충족 하게 되고,, num이 10 일때의 banbok 함수는 종료됩니다. 이제 9 일때의 banbok 함수에서 printf로 출력을 하고 차례대로 8 7 6 5 4 3 2
-
빈길 2024-05-31
음 무슨 말씀인지 모르겠지만
저 코드들을보면
우선 main에서 num으로 0을 넘기면
banbok에서 재귀를 하는데요
우선
banbok(0) - banbok(1) - banbok(2) - ... - banbok( 9) - banbok(10) - num=10
0을 printf하고 -1을 printf하고 9를 printf하고 -banbok 호출X
-
꺄홋 2024-05-31
아 답변감사합니다. 죄송하지만 한가지만 더 여쭤볼게요.
그럼 리턴다한후 printf 안에서 알아서 큰순서되로 정리를 해주는건가요?? -
아이뻐 2024-05-31
현재 Num을 printf하기전에 재귀호출을 하면 호출된 함수들이 리턴을 다하고난 후에 printf하게되기때문에 그럴거같습니다
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700484 | 두 개가 차이가 뭔지 알려주세요...(소수 찾는 프로그램) (2) | 날위해 | 2025-07-05 |
2700426 | 인터넷 창 띄우는 질문이요 (1) | 정훈 | 2025-07-04 |
2700400 | 원넓이를 계산이요 ㅜㅜ | 천칭자리 | 2025-07-04 |
2700368 | if에 관해서 질문이요... | Orange | 2025-07-04 |
2700339 | 이거 결과값이 왜이런건지.. (4) | 그댸와나 | 2025-07-04 |
2700313 | 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) | 크나 | 2025-07-03 |
2700287 | 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) | 아련나래 | 2025-07-03 |
2700264 | 문자와 숫자 동시에 입력??? | 글고운 | 2025-07-03 |
2700236 | txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) | 미국녀 | 2025-07-03 |
2700211 | 전위 연산자 (2) | 어른처럼 | 2025-07-02 |
2700183 | C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; | 피스케스 | 2025-07-02 |
2700150 | 꼭좀 도와주세요ㅠㅠㅠ | 호습다 | 2025-07-02 |
2700095 | 연산문제...질문... | 오빤테앵겨 | 2025-07-01 |
2700070 | while문 , 3의배수 출력하는 프로그램좀 짜주세욤. | 횃불 | 2025-07-01 |
2700041 | 초보인데요 ㅎ 배열안에 배열을 집어넣을수 있나요?? | 헛장사 | 2025-07-01 |
2700012 | 배열// (1) | 전갈자리 | 2025-07-01 |
2699895 | 무한루프에 빠집니다.!! 해결좀부탁드려요 (10) | 선아 | 2025-06-30 |
2699842 | 질문을 너무 많이 하네여.....죄송.... (2) | 해님꽃 | 2025-06-29 |
2699816 | 오류 질문입니다.. (1) | 해비치 | 2025-06-29 |
2699763 | 질문입니다 ! 꼭 좀 도와주세요ㅠㅠ (2) | 미라 | 2025-06-28 |