게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c언어 재귀함수 실행 순서가 궁금합니다
게시물ID : programmer_14965짧은주소 복사하기
작성자 : 찌랄발광
추천 : 0
조회수 : 1633회
댓글수 : 11개
등록시간 : 2015/12/13 21:59:57
옵션
  • 본인삭제금지

#include<stdio.h> //표준 입력 출력 함수가있는 라이브러리 헤더파일 포함 전처리문

long int fact(int); //fact부함수 선언

void main() //입력 출력 매개변수가없는 메인함수
{ //메인함수시작
 int n,result; //정수 자료형 n result 선언
 printf("\n 정수를 입력하세요!! "); //줄바꿈 정수를 입력하세요!! 출력문
 scanf("%d",&n); //키보드 입력함수  입력받은값 n에저장
 result = fact(n); //부함수 fact에 n 입력
 printf("\n\n %d의 factorial 값은 %ld입니다.\n",n,result); //2줄바꾸고 n의 factorial 값은 resault값 출력
 getchar(); //대기문
} //메인함수종료

long int fact(int n)//입력매개변수 long int n 출력매개변수 long int 인 부함수 fact 선언
{ //fact 부함수 시작
 int value; //정수 자료형 value 선언
 if(n<=1){ //n<=1일때 동작하는 if 조건문 
  printf("\n fact(1)함수 호출!"); //줄바꾸고 fact(1)함수 호출! 를 출력
  printf("\n fact(1)값 1 반환!!"); //줄바꾸고 fact(1)값 1 반환!! 를 출력
  return 1; // return을 1로 반환
 } //if문종료
 else{ ////n<=1 이아닐떄 동작하는 조건문
  printf("\n fact(%d)함수 호출!",n); //줄바꿈 fact(n의값)함수 호출! 를 출력
  value = (n*fact(n-1)); //정수 자료형 value에 n*fact(n-1) 재귀
  printf("\n fact(%d)값 %ld 반환!!",n,value); //줄바꿈 fact(n의값)값 value값 반환!! 출력
  return value; //return 을 value로 반환
 } //else문 종료
}//부함수 fact종료

스캔에프에서 5를 눌럿으면요

1 부함수선언

2 메인함수선언

3 메인함수시작

4 정수형변수 n result 선언

5 정수를 입력하세요 출력

6 스캔에프 실행

7 result =fact(n) 실행

8 부함수 실행

9 벨류선언

10 이프문 실행

11엘스 실행

12 함수호출 프린트

13 벨류= n*fact(n-1) 실행

8  10 11 12 13 을 3번더 실행

모르겟습니다...

 


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호