프로그래밍 언어/C 81

C언어 17강 다차원 배열

다차원 배열: 배열의 개수가 2개 이상일 때를 다차원 배열이라고 부른다. ●2차원 배열 ●선언방법예시 int 배열명[3][5] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}} ; ↗ ↖ 행 열 2차원 배열의 배열명 타입을 'int', 배열명을 'data', 배열의 크기를[3행][5열]로 선언하여, 배열 요소의 초기값을 대입하면 메모리 공간에는 다음과 같이 저장된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ●2차원 배열 코드출력예제 #include int main() { int data[3][5] = { {1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15} }; int hang, yeol; print..

C언어 16강 순환 함수(재귀함수)

●순환 함수(재귀 함수) :자기 자신의 함수를 스스로 다시 호출하는 함수 ●장점 1) 프로그램이 더 간결해진다. 2) 일정한 규칙을 갖고 반복적으로 처리되는 작업에 순환 함수를 사용할 경우 더 쉽게 표현할 수 있다. ●순환 함수 코드 예제 #include int factorial(int n) { if (n == 1) //n 이 1 일때 return 1; //1반환 하고 함수 끝내기 return n * factorial(n - 1); //n이 1이 아닐때 factorial에 n-1넣은 함수 X n 을 반환 } int main() { int num, result; printf("\n 팩토리얼을 구할 정수를 입력하세요: "); scanf_s("%d", &num); result = factorial(num); ..

C언어 15강 매개변수 전달방법 2.call by reference(참조에 의한 호출)

참조에 의한 호출은 실 매개변수의 주소 값을 호출되는 함수의 형식 매개변수에 전달하는 방식. 실 매개변수와 형식 매개변수가 동일한 메모리 공간 주소를 사용하므로, 형식 매개변수의 값이 변경되면, 실 매개변수의 값도 변경된다. C언어에서는 참조에 의한 호출을 사용하기 위해 포인터변수를 활용해야 한다. 포인터(*) 변수는 메모리 공간의 주소를 기억하고 있는 변수. C언어에서는 call by value밖에 없다.따라서 참조에 의한 호출을 사용하기 위해서는 포인터 변수를 사용해야 하는 것이다. 코드 보면서 이해하자.. #include void swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } int main() { int a = 10, b= 2..

C언어 14강 매개변수 전달방법 1. Call by value(값에 의한 호출)

값에 의한 호출은 실 매개변수의 값만 형식 매개변수에 전달되기 때문에 호출되는 함수는 형식 매게변수만 조작할 수 있고, 실 매개변수에는 직접 접근 할 수 없다. 코드를 보며 직관적으로 이해하는것이 글자로 된 설명을 보는 것보다 훨씬 수월하다. #include void swap(int x, int y) { int temp; temp = x; x = y; y = temp; } int main() { int a = 10, b= 20; printf("\n■Call By Value 프로그램■\n"); printf("---------------------------\n"); printf("함수 호출 전 a값,b값 : %d, %d\n\n", a,b); printf(" >함수 호출< \n\n"); swap(a, b);..

C언어 13강 분기문 (break 문 , continue 문, return 문)

●분기문: 프로그램 수행에 있어서 지정된 위치로 이동하는 제어 명령으로 코드 블록 내의 프로그램 실행을 종료하거나 다른 위치로 이동시킬 때 주로 사용되는 문장. break 문: for, while 등의 반복문이나, switch~case 문을 빠져나올 때 사용하는 문장. ●break 문 코드 예제 #include int main() { int cnt = 1, hap = 0; printf("\n ■1부터 50까지 누적합이 1000을 넘으면 종료■\n"); printf("-----------------------------------------------\n"); while (cnt 1000) { break; } else { hap += cnt; cnt++; } } printf("1부터 %d까지의 누적합..%..

C언어 12강 사용자 정의 함수

함수(function) ●정의:프로그램에서 특정한 작업을 수행하도록 따로 정의해 놓은 독립적인 프로그램의 단위 ●목적: 1) 특정 작업을 함수로 처리하여, 반복을 줄이기 위해서 2) 구조적 프로그램으로 모듈화 하여 프로그램의 작성과 수정을 용이하게 하기 위해서 3) 다른 프로그래머에게 라이브러리를 제공하기 위해서 ●종류: 1) 라이브러리 함수 2)사용자 정의 함수 라이브러리 함수(Library Function): 컴파일러를 제작한 회사에서 제공하는 함수 ex) printf() 라이브러리:컴파일된 기계어를 모아둔 파일 사용자 정의 함수(User Defined Function):사용자가 필요에 따라 직접 만들어 사용하는 함수 ●주의점: return 값은 함수 안에서만 사용할 수 있음! ●사용자 정의 함수 문..

C언어 11강 선행처리기 명령어 #define 함수 (상수치환/매크로)

선행처리기란? abcdefgh123123.tistory.com/99 C언어 참고내용- 선행처리기(preprocessor)란? 선행 처리기(preprocessor) ●정의 컴파일러가 소스 프로그램을 기계어 코드로 번역하기 전에 일련의 작업을 수행하는 것 ●장점 프로그램의 쉬운 이해 프로그램의 수정 용이 프로그램의 간편한 이 abcdefgh123123.tistory.com #define 함수 ●#선행처리기 명령어 #define함수 용도: 1) 상수를 치환 2) 매크로 함수를 정의 Q)선행처리기(preprocessor)란? --코드를 생성하는 것이 아니라, 컴파일러가 컴파일하기 좋도록 소스를 재구성해 주는 역할을 하는 것. Q) 매크로(macro)란? --프로그램 내에서 반복적으로 사용되는 단어 또는 수행할 ..

C언어 10강+ 배열 응용: 배열의 최댓값구하기 알고리즘

코드예제 #include int main() { int bag[5] = { 12,13,10,17,15 }; int max = bag[0]; //원소 중 한 개를 최대값으로 가정 if (bag[1] > max) { max = bag[1]; } printf("bag[1]까지 한 뒤 max값: %d\n", max); if (bag[2] > max) { max = bag[2]; } printf("bag[2]까지 한 뒤 max값: %d\n", max); if (bag[3] > max) { max = bag[3]; } printf("bag[3]까지 한 뒤 max값: %d\n", max); if (bag[4] > max) { max = bag[4]; } printf("bag[4]까지 한 뒤 max값: %d\n", m..

C언어 10강 배열(array)/문자열(char 활용)

●배열(array) 1)정의: 같은 종류의 데이터 타입을 선언하기 위해 구성된 데이터의 집합. *일반변수 선언과의 차이: 일반변수의 경우에는 따로 분리된 변수 이름을 사용하지만, 배열은 변수를 한 줄로 묶어서 전체 이름을 지정하고, 인덱스로 값을 구분하여사용.(0부터시작) [추가내용: 배열첨자는 왜 0부터?? : 배열 첫 원소로부터 몇 개 뒤의 원소인가를 나타내기 때문] 일반변수: int a = 5; 5 배열: int arr[3] = {1,2,3}; 1 2 3 arr[0] arr[1] arr[2] 배열요소: 배열을 구성하는 요소. 위에서 데이터(1,2,3)이 배열의 요소이다. ↙배열 크기 2)선언예시: int arr[3] = {1,2,3}; or int arr[ ] = {1,2,3};