C Programming 23

C언어 피보나치 수열 출력하기 - 공부하는 도비

2022.10.28 - [C언어] - [C언어] 재귀 함수를 사용한 피보나치 수열 - 공부하는 도비 [C언어] 재귀 함수를 사용한 피보나치 수열 - 공부하는 도비 https://ko.wikipedia.org/wiki/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98_%EC%88%98 피보나치 수 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 피보나치 수를 이용한 사각형 채우기 수학에서.. yang-wistory1009.tistory.com 저번 피드에서 재귀 함수를 이용하여, 입력한 수에 대한 피보나치 수를 계산해보았습니다. 오늘은 재귀함수 대신, 배열을 사용한 피보나치 수열 계산에 대해 알아보려고 합니다. 입력받은 수의 길이 만큼 새로운 배열을 만들고, 그 배열 ..

C Programming 2022.10.31

C언어 재귀 함수를 사용한 피보나치 수열 - 공부하는 도비

https://ko.wikipedia.org/wiki/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98_%EC%88%98 피보나치 수 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 피보나치 수를 이용한 사각형 채우기 수학에서 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. ko.wikipedia.org 오늘은 임의의 양의 정수 n을 입력하면 n번째 피보나치수열의 값을 출력하는 프로그램을 재귀 함수를 사용하여 구해보도록 하겠습니다. #include int fibo(int num) { if (num

C Programming 2022.10.28

C언어 포인터를 이용하여 배열의 모든 원소 역순 출력 함수 - 공부하는 도비

#include void ReverseArray(int* ptr, int len) { for(int i = len-1; i >= 0; i--) { printf("%d ", *(ptr + i)); } } int main(void) { int score[] = { 100, 78, 65, 32, 89 }; int array_length =sizeof(score) /sizeof(score[0]); ReverseArray(score, array_length); return 0; } ReverseArray 함수 결과를 main으로 따로 주지 않아도 되니 void로 선언해주고, 배열 score의 포인터 변수로 *ptr로 받습니다. 저런식으로 배열을 포인터로 받으면 배열의 0번째 방 주소를 *ptr로 가리키게 됩니다...

C Programming 2022.10.28

양의 정수 값을 입력 받아 입력한 정수까지의 소수를 구하는 함수 작성 - 공부하는 도비

소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수다. 예를 들어, 7은 1×7 또는 7×1로 수를 곱한 결과를 적는 유일한 방법이 그 수 자신을 포함하기 때문에 7은 소수이다. 따라서, 1과 자기자신을 제외한 수로 나눠진다면 그 수는 소수가 아니다. 이 점을 이용하여 소수를 계산해보려고 한다. #include void prime(int a) { for(int i = 1; i

C Programming 2022.10.28

C언어 포인터 기초 (필요성) - 공부하는 도비

저번 피드에서 C언어의 포인터에 대해 간단히 알아보았습니다. 2022.10.13 - [C언어] - [C언어] 포인터 기초 (선언) - 공부하는 도비 [C언어] 포인터 기초 (선언) - 공부하는 도비 오늘은 모두가 어려워하는 포인터에 대해서 알아볼게요. C언어를 공부하면서 학생들이 손 놓는 부분이 포인터를 배울 때라고 생각해요. 그래서 기초부터 정리해두려고 합니다. 우리가 변수를 yang-wistory1009.tistory.com 오늘은 포인터가 대체 왜 필요한지 설명해보려고 합니다. 우선 아래 두 가지 코드를 비교해볼게요. 두 코드 모두 처음 선언한 value 변수에 100을 더하는 코드이고, 차이는 함수의 인자에 값을 넘겨주는 call by value 함수이냐 아니면 주소 값을 넘겨주는 call by ..

C Programming 2022.10.13

C언어 포인터 기초 (선언) - 공부하는 도비

오늘은 모두가 어려워하는 포인터에 대해서 알아볼게요. C언어를 공부하면서 학생들이 손 놓는 부분이 포인터를 배울 때라고 생각해요. 그래서 기초부터 정리해두려고 합니다. 우리가 변수를 선언하면, 아래 그림처럼 메모리의 특정한 장소(주소)에 값이 저장됩니다. 포인터란? "특정 데이터가 저장된 메모리의 주소를 저장하는 변수" 위의 예시에 따르면, 포인터는 위의 변수 c, i, pi의 주소를 저장하는 변수라고 정의할 수 있습니다. ▶ 포인터 변수 선언 - 포인터 변수 선언을 위해서는 간접 연산자 *를 변수 앞에 사용 합니다. - 각 데이터 형에 따라 아래와 같이 포인터 변수를 선언 할 수 있습니다. 위 예시에 대한 포인터를 선언해볼께요.! & 기호가 주소를 뜻하니, &c를 출력하면 c의 주소 값이 출력되고, c..

C Programming 2022.10.13

C언어 행렬 곱셈 - 공부하는 도비

아래와 같은 두 행렬의 곱을 계산해보도록 하자. 우선, 행렬의 곱이 형성되기 위해선, 1번 행렬의 열 개수와 2번 행렬의 행 개수가 동일해야 한다. 예제에서는, mat1 = (2, 3) 행렬, mat2 = (3, 2) 행렬이기 때문에 곱 결과는 (2, 2) 행렬이 만들어지게 된다. 행렬의 자세한 내용은 아래 위키를 참고하면 좋을 거 같다. https://ko.wikipedia.org/wiki/%ED%96%89%EB%A0%AC_%EA%B3%B1%EC%85%88 행렬 곱셈 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 행렬 곱셈을 위해선 첫째 행렬의 열 갯수와 둘째 행렬의 행 갯수가 동일해야한다. 곱셈의 결과 새롭게 만들어진 행렬은 첫째 행렬의 행 갯수와 둘째 행렬의 열 ko.wiki..

C Programming 2022.10.03

C언어 2차원 배열의 합 - 공부하는 도비

3 X 3 배열이 아래 그림처럼 2차원 배열로 선언되어있고, 이 배열의 합을 구해보려고 한다. 2차원 배열로 각 행렬을 선언을 해주고, 연산 후 값을 result 배열에 넣어주려고 한다. #include int main() { int mat1[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int mat2[3][3] = { {1, 0, 8}, {2, 1, 0}, {5, 7, 2} }; int mat3[3][3] = { {3, 4, 7}, {2, 5, 8}, {1, 3, 5} }; int result[3][3] = {{0}}; } 두 가지 방법이 있다. 1. 단일 for문 for (int i = 0; i < 3; i ++) { result[i][0] = mat1[i][0] ..

C Programming 2022.10.03