본문 바로가기

프로그래밍39

C언어 공부하기 - 순환문(2) do~while, break, continue, goto 1. do~while 문 지난시간에 for문과 while문 등의 순환문에 대해 공부했습니다. for나 while문은 순환(Loop)의 종료 조건을 앞에서 검사를 하는데 반해, do~while문은 뒤에서 검사합니다. 그러므로 최소 1번은 수행이 됩니다. do { statement } while (expression); 일단 do~while문에 진입하여 statement를 수행한 후 expression을 검사합니다. 문법에서 주의할 점은 마지막에 세미콜론(;)이 붙는다는 점을 잊지 말아야 합니다. 예제로 조금 더 알아 보겠습니다. 아래 함수는 itoa라는 함수인데 정수형숫자를 문자배열로 바꿔주는 역할을 합니다. int itoa (int n, char s[]) { int i, sign; if ((sign = .. 2020. 7. 25.
C언어 공부하기 - 순환문(1) while, for 순환문(Loop)은 반복계산을 위해 사용되는데 대표적으로 while문과 for 문이 있습니다. 먼저 while문은 아래와 같은 형식으로 사용합니다. while (expression) statement expression을 계산하여 참이면 (= 0 이 아니면) statement를 수행하고 다시 expression을 계산을 반복을 합니다. 반면 for문은 다음과 같은 형식을 갖습니다. for (expr1; expr2; expr3) statement 위 구조의 for 문을 while문으로 동일하게 바꿔 보면 아래와 같습니다. expr1 while (expr2) { statement expr3 } for문의 세가지 expr1, expr2, expr3은 모두 수식이어야 하는데 한개 이상 생략을 할 수 있습니다. .. 2020. 7. 23.
C언어 공부하기 - 제어문 C언어에서 제어문은 계산순서를 정하는 것으로서 if ~ else, else if 문, switch 문등이 있습니다. 1. 문장과 블럭 (Statements and Block) x=0 또는 i++, printf(...) 같은 것은 수식 (expression)이라고 하며, 이들이 세미콜론(;)으로 끝이 나면 문장(statement)이 됩니다. i = 0; x++; printf("hello, world!\n"); C언어에서 세미콜론은 문장의 끝을 나타냅니다. 중괄호 { }는 여러개의 선언문이나 문장을 모아서 복합문(compound statement)이나 블럭(block)을 만드는데 쓰입니다. 2. if ~ else 문 if ~ else문은 프로그램 흐름을 결정하기 위해 사용되는데 문법은 아래와 같습니다. if.. 2020. 7. 21.
[C언어 알고리즘] 정렬 (8) - 병합정렬 (Merge Sort) 병합정렬은 이미 정렬된 두 파일을 병합(Merge)하는 방식을 일반화한 것입니다. 병합정렬은 아주 자연스럽고 이해가 쉽고 빠른 속도를 가지는 정렬방식입니다. 병합정렬은 두 자료를 순차적으로 읽어가면서 비교 접근하는 방법으로 연결리스트(Linked-list), 테이프(Tape)같은 순차적 접근만이 용이한 자료구조나 기억장치에서 유용하고 유일한 정렬방법입니다. 병합정렬은 메모리내부(internal)정렬뿐 아니라 외부(external) 정렬에서도 사용합니다. 이번 포스팅에서는 하나의 배열을 최소 단위 (배열의 1개요소)부터 단위를 2배로 늘려가며 정렬하는 예제에 대해 공부합니다. 우선 병합정렬의 기본 의사코드(Pseudo code)를 보도록 하죠. 1. size = 1 2. size가 N보다 작을 동안 2.1.. 2020. 7. 21.
C언어 공부하기 - 연산자 연산자란 C언어 수식 또는 문장에서 어떤 기능을 수행하는 기호를 의미합니다. 수학 연산에서 배우는 기호와 많이 유사하죠. 예를 들어 다음과 같은 C언어 문장이 있다고 합시다. int age = 10; age = age + 10; 첫 문장은 정수형 변수 age를 선언하고 그 변수에 10을 대입하라는 의미입니다. 여기서 '='기호는 오른쪽 값을 왼쪽에 대입(또는 지정Assignment)하라는 대입연산자입니다. age와 10은 피연산자입니다. 두 번째 문장은 위에서 선언한 age(10이란 값이 들어 있죠.)에 10를 더해 다시 age에 넣으라는 의미입니다. '+'기호는 더하라는 의미의 산술(Arithmetic)연산자이고 '='기호는 마찬가지로 대입연산자입니다. 1. 산술연산자 산술연산자는 두개의 피연산자를 갖.. 2020. 7. 20.
C언어 공부하기 - 변수와 상수 변수와 상수는 프로그램에서 사용되는 기본적인 데이터입니다. 변수와 상수를 사용하기 위해서는 사용할 변수를 형식에 맞게 선언을 하고 값을 지정해 줄 필요도 있습니다. 변수와 상수는 데이터형(Data type)에 따라 사용할 수 있는 값과 그들을 다룰 연산이 결정됩니다. 이번 포스팅에서는 기본 데이터형과 변수 및 상수의 개념과 사용 예제를 다루겠습니다. 1. 변수 (Variable) 변수는 데이터형에 맞는 값이 변경이 가능한 메모리 공간입니다. 예를 들어 나이라는 데이터를 아래와 같이 선언하고 초기값을 지정했다고 합시다. int age = 10; 위의 문장에서는 나이를 의미하는 age라는 변수명을 int형이라는 데이터형으로 선언하고 값을 10으로 지정했다는 의미입니다. '='기호는 수학에서는 등호로 같다라는.. 2020. 7. 18.