본문 바로가기

전체 글45

과제 배열example1123456789101112131415#include int main(void){ int i, key; int arr[10]; scanf("%d", &key); for(i=0;i 2016. 3. 28.
함수 함수는 크게 사용자정의함수와 라이브러리 함수가 있다. 라이브러리함수로는, stdio.h 의 printf 나 scanf 같은, 미리 정의되어 있는 함수들이있다. 또한, 사용자 정의 함수로는 main 외에 사용자가 새롭게 정할 수 있는 함수가 존재한다. 함수가 필요한 이유는, 우리가 프로그램을 작성할때 main 함수 안에서 모든것을 작성할 수도 있다.하지만, 프로그램이 돌아가는 구조나, 남들이 볼때 매우 힘들고 비효율적이라고 생각한다. 예를들어 뭔가를 조립한다고 했을때, 각 부품 부품을 만들어 조립하는것이다. 또한, 이렇게 하면 고장난 부분만 교체하여 주면 된다.이처럼 함수는 각 부분이라고 생각할 수 있다. 함수들을 정의하는방법은 다음과 같다. 반환형 함수명(인자){내용리턴값} ex) int my_strle.. 2016. 3. 28.
2차원배열 앞서 설명했던 배열의 확장판으로 생각하면 이해하기 쉽다. 이차원 배열또한 배열인데, 본래 C는 다차원 배열을 지원하지 않는다.하지만, 배열들을 묶은 배열이라고생각하면 편하다. 위 그림과 같이 말이다. 이또한 첨자연산이 가능한데, arr[0][0]은 이차원 배열 arr의 첫번째 줄의 첫번째 요소를,arr[0][1]은 이차원 배열 arr의 첫번째 줄의 두번째 요소를, arr[0][2]은 이차원 배열 arr의 첫번째 줄의 세번째 요소를 나타낸다.이런식으로 생각하면 이해가 편하다. 다음과 같이 초기화가 가능하다. int arr[2][3] = {1, 2, 3}, {4, 5, 6}; 또한 for문으로 i 와 j 를 이용하여 접근할 수 있다. 2016. 3. 28.
이진탐색 이진탐색이란 절반씩 나누어 검색하는 분할탐색 알고리즘을 말한다. 순차탐색보다 빠르며, 이진탐색을 하기 위해서는, 오름차순이나 내림차순으로 정렬된 배열이 필요하다. 이를 간단한 예제로 구현하면 다음과 같다.12345678910111213141516171819202122232425262728293031#include int main(void){ int key; int low=0, high, mid; int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; scanf("%d", &key); high = sizeof(arr) / 4; while (low 중앙값 이라면, 탐색범위의 처음인 low 가 mid+1 로 탐색 범위를 줄이고,그 반대라면 탐색범위의 끝인 high 가 mid-1로.. 2016. 3. 28.