프로그래밍/C
C언어_재귀 호출
MG_세대
2023. 10. 18. 16:02
C언어를 새로히 공부하게 되었다.
우선 자바에서는 입력값을 받을 때 java.util.Scanner를 import해 받아 썼으면
C에서는 scanf로 키보드값을 입력 받는다. 하지만 그냥 쓰게되면 다음과 같은 오류가 발생하게 된다.
따라서
#define _CRT_SECURE_NO_WARNINGS
을 추가해주어야 정상적으로 빌드되어진다.
아래는 연습용 예제
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
char grade; // 학점을 입력할 변수
char name[20]; // 이름을 입력할 배열
printf("학점 입력 : "); // grade 변수에 학점 문자 입력
scanf("%c", &grade);
printf("이름 입력 : ");
scanf("%s", name); // name 배열에 이름 문자열 입력, &를 사용하지 않는다.
printf("%s의 학점은 %c입니다.\n", name, grade);
return 0;
}
재귀호출의 이해를 돕는 코드가있엇다.
위 예시 코드를 보고 숙지한 뒤 "재귀호출" 함수를 사용하여 1부터 10까지 더하는 문제가 있어 풀어보았다.
For문으로하면 더 쉽게 느껴졌겠지만 재귀호출을 이용하여 조금 버벅였다.
#include <stdio.h>
int rec_func(int n); // 함수 선언
int main() {
int n = 1; // 1부터 n까지의 합을 계산할 값
int sum = rec_func(n); // 함수 호출
printf("1부터 %d까지의 합은: %d\n", n, sum);
return 0;
}
int rec_func(int n) {
if (n == 10) {
return 10;
}
else {
return n + rec_func(n + 1); // 재귀 호출
}
}
다음과 같은 결과로 예상한 답이 도출되었다.
다음은 배열에 대해서 공부할 예정이다.