본문 바로가기

Layer7/WriteUp

함수, 재귀함수 정리

먼저 함수는 편의성을 위해? 기능 구현을 따로 선언 하는 것이다.

 

예시로 짠 코드가 있다.

int compare(int a, int b){
    if(a >= b){
        return 1;
    }
    else{
        return 0;
    }
}

#include <stdio.h>

int main(){
    int a, b;
    scanf("%d %d", &a, &b);
    
    if(compare(a, b)){
        printf("a가 b보다 크거나 같다");
    }
    else{
        printf("a가 b보다 작다");
    }
    
    
}

 

먼저 함수를 선언 하는 방법은

자료형 함수이름(인자){

 

}

이다.

 

이 코드에선 compare함수를 선언 해 사용했다.

 

compare 함수는 받은 인자의 크기를 비교하는 함수다.

 

함수는 main에서 사용을 해줘야 함수 안 내용이 돌아간다.

 

이제 재귀함수 예제를 살펴보도록 하겠다.

 

#include <stdio.h>

void print_star(int a){
    if (a==0){
        return;
    }
    for(int i = 0; i < a; i++){
        printf("*");
    }
    printf("\n");
    return print_star(a-1);
}



int main(){
    int a;
    
    printf("Input: ");
    scanf("%d", &a);

    print_star(a);
    
    return 0;
}

 

재귀함수는 함수 안에서 자기 자신을 호출하는 함수다.

 

이 예문에서 print_star 함수는 인자를 a-1로 자기 자신을 인자 a가 0이 될 때 까지 재귀한다.

 

그래서 인자 a가 0이 될 때 까지 재귀를 돌리면 별이 5개 부터 1개 까지 한 줄씩 개행이 돼 출력 될 것이다.

 

그리고 맨 위에 조건문으로 0이 되면 return을 해 재귀를 끝낸다.

'Layer7 > WriteUp' 카테고리의 다른 글

Layer7 웹 1차시 수업내용 정리  (0) 2024.05.16
C언어 코드를 JS코드로 변환하기 (2문제)  (0) 2024.05.16
JS 문법 정리  (0) 2024.05.16
재귀함수로 별 찍기 WriteUp  (0) 2024.04.12
Compare 함수 문제 WriteUp  (0) 2024.04.12