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 |