functions setting 과 활용

2022. 2. 25. 17:52
1
2
3
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
cs

위와 같이 라이브러리를 include한 뒤, int main(void) 위 사이에 

 

1
2
// 선언
void p(int num);
cs

 

int main(void) 위에 위와 같이 함수를 선언한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    // function
    // 계산기
 
    int num = 2;
    // printf("num은 %d입니다.\n", num);
    p(num);
    // 2+ 3
    num = num + 3;
    // printf("num은 %d입니다.\n", num);
        p(num);
 
    // 5-1
    num = num -1;
    // printf("num은 %d입니다.\n", num);
    p(num);
 
    num = num * 3;
    // printf("num은 %d입니다.\n", num);
    p(num);
 
    num = num / 6;
    // printf("num은 %d입니다.\n", num);
    p(num);
 
cs
1
2
3
4
// 정의
void p(int num){
    printf("num은 %d입니다.\n", num);
}
cs

그리고 함수 사용 전에 int main(void) 하단에 함수를 정의한다. 그 후 사용할 수 있다.

 

다음은 간단한 선언과 정의와 실제 출력 코드이다.

// 함수 선언

1
2
3
4
void function_without_return();
int function_with_return();
void functiomn_without_parameters();
void functiomn_with_parameters(int num1, int num2, int num3);
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void function_without_return(){
    printf("반환값이 없는 함수 입니다.");
}
 
int function_with_return(){
    printf("반환값이 있는 함수 입니다.\n");
    return 10;
}
void functiomn_without_parameters(){
    printf("전달값이 없는 함수 입니다.");
}
 
void functiomn_with_parameters(int num1, int num2, int num3){
    printf("전달값이 있는 함수이며, 전달 받은 값은 %d, %d, %d 입니다.", num1, num2, num3);
}
cs

위와 같이 출력 값을 정의하고,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    // 함수 종류
    // 반환값이 없는 함수
 
    function_without_return();
 
    반환값이 있는 함수
    int ret = function_with_return();
    p(ret);
 
    전달값 parameters가 없는 함수.
    functiomn_without_parameters();
 
    functiomn_with_parameters(35, 27, 12);
 
    // 전달값 parameters 도 받고, 반환값이 있는 함수.
 
    
cs

함수를 사용하여 출력한다.

 

 

1
2
3
4
5
6
int apple(int total, int ate);
int add(int num, int num2);
int sub(int num1, int num2);
int mul(int num1, int num2);
int div(int num1, int num2);
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int apple(int total, int ate){
    printf("전달값과 반환값이 있는 함수입니다.\n");
    return total - ate;
}
 
int add(int num, int num2){
    return num + num2;
}
int sub(int num1, int num2){
    return num1 - num2;
}
int mul(int num1, int num2){
    return num1 * num2;
}
int div(int num1, int num2){
    return num1 / num2;
}
cs

이와 같이 선언, 정의 후,

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    int ret = apple(5,2); // 5개의 사과 중 2개를 먹음.
    printf("사과 %d개 중에 %d개를 먹으면? %d개가 남아요\n", 10, 4, apple(10,4));
 
    계산기 함수
    int num = 2;
    num = add(num, 3);
    p(num);
 
    num = sub(num, 1);
    p(num);
 
    num = mul(num, 3);
    p(num);
 
    num = div(num, 6);
    p(num);
 
cs

출력한다.

 

프로젝트 함수를 다음과 같이 선언한다.

1
2
3
4
int getRandomNumber(int level);
void showQuestion(int level, int num1, int num2);
void success();
void fail();
cs

프로젝트 함수를 다음과 같이 정의한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int getRandomNumber(int level){
    return rand() % (level * 7+ 1;
}
void showQuestion(int level, int num1, int num2){
    printf("\n\n\n######## %d 번째 비밀번호 ########\n\n\n", level);
    printf("\n\t%d x%d 의 값은 ?\n\n", num1, num2);
    printf("#####################");
    printf("\n비밀번호를 입력하세요 >> (종료 :-1)>>");
}
void success(){
    printf("\n >> good 정답입니다.\n");
}
void fail(){
    printf("\n >> 땡 틀렸습니다. \n");
}
cs

아래와 같이 프로젝트 코드를 완성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
    // 문이 5개가 있고, 각 문마다 점점 어려운 수식 퀴즈가 출제.
    // 맞히면 통과, 틀리면 실패
 
    srand(time(NULL));
 
    int count = 0;
    for (int i =1; i<=5; i++){
        int num1 = getRandomNumber(i);
        int num2 = getRandomNumber(i);
 
        showQuestion(i, num1, num2);
    
    int answer = -1;
    scanf("%d"&answer);
 
    if (answer == -1){
        printf("\n프로그램을 종료헙니다.\n");
        exit(0);
    }
    else if(answer == num1 * num2){
        //성공
        success();
        count++;
    }
    else {
        //실패
        fail();
    }  
    }
    printf("\n\n 당신은 5개의 비밀번호 중 %d개를 맞췄습니다.", count);
    
 
 
 
    return 0;
cs

 

 

출처 : https://www.youtube.com/watch?v=q6fPjQAzll8&t=494s

'Programming > C\C++' 카테고리의 다른 글

struct 구조체  (0) 2022.03.04
MultiDimensional Array  (0) 2022.03.04
*포인터*  (0) 2022.03.04
Initial Array && ASCII  (0) 2022.02.25
if && else if && else 의 활용  (0) 2022.02.23

BELATED ARTICLES

more