-
2020.11.02
버블 정렬(Bubble Sort)
*버블 정렬(Bubble Sort) 12345678910111213141516171819202122232425#include #define SIZE 5 int main() { int i, k; int list[SIZE] = {16, 7, 9, 1, 3}; // 배열의 요소 정렬 for (k = 0; k
-
2020.10.12
배열을 사용하지 않고 입력 받은 정수의 각 자리의 수 합하기
다음과 같이 입력 받은 정수 N의 각 자리의 수를 배열을 사용하지 않고 반복문을 사용하여 합할 수 있다. 1234567891011121314#include int main() { int N, sum = 0; scanf("%d", &N); for (int i = N; i != 0; i /= 10) { sum += (i % 10); } printf("정수 N의 각 자리수의 합 : %d", sum); return 0;} 1234515 원리는 다음과 같다. 입력 받은 정수 N을 0이 될 때까지 10으로 계속 나누어 준 후, 10으로 mod 연산을 수행하면 된다.그리고 나온 값들을 모두 더해주면 끝! [Step 1] 12345 12345 % 10 = 5 (다섯 번째 자리의 수) [Step 2] 12345 / 10..
-
2020.09.18
조건문이나 함수 없이 반올림 하기
조건문이나 round() 함수를 사용하지 않고 간단한 조건만으로 반올림을 할 수 있는 방법이 있다. 예를 들어 5자리의 정수를 받아서 100의 자리에서 반올림한 결과 값을 출력하는 프로그램을 작성할 때, (100의 자리의 숫자 >= 5) * 1000의 값을 더해주면 된다. >= 5 이라는 조건을 넣어주어 100의 자리의 숫자가 5 이상일 경우 1(True), 그렇지 않을 경우 0(False)이 나오도록 한 후 그 값을 1000과 곱하여 더해주면 되는 것이다. 1234567891011121314151617#include int main() { int input, tenThousand, thousand, hundred; scanf("%d", &input); tenThousand = input / 10000;..
-
2020.09.11
숫자 출력 시 앞에 0을 붙여 자리수 채우기
C 언어에서 숫자 출력 시, 앞에 0을 붙여 자리수를 채울 수 있는 방법이 있다.printf()로 출력할 경우, 형식 지정자에 0n(n: 숫자)을 붙이면 된다. 12345678#include int main() { printf("%d\n", 125); printf("%5d\n", 125); printf("%05d\n", 125); return 0;} 125 12500125 > "%05d" 1 2 3 4 5 0 0 1 2 5
-
2020.08.14
C언어 2차원 배열 동적 할당 예제
// 동적 할당을 이용하여 ROW x COL 크기의 2차원 배열 만들기 #include #include #define ROW 10 #define COL 10 int main() { int count = 0; // 동적할당을 이용하여 2차원 배열 생성하기 int **arr = (int**)malloc(sizeof(int) * ROW); for (int i = 0; i < ROW; i++) { arr[i] = (int*)malloc(sizeof(int) * COL); } // 2차원 배열에 데이터 넣기 for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) { arr[i][j] = count++; } } // 2차원 배열의 내용 출력하기 for (int..
-
2020.05.15
이진 탐색 트리 프로그램 (Binary Search Tree Program)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816..
-
2017.09.14
배열 내에서 같은 수의 개수 찾기 (Finding the number of the same number in an array)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include int main() { int count = 0, input = 0; int ary[10] = {0, 1, 2, 3, 4, 4, 3, 2, 5, 6}; printf("Input a number : "); scanf("%d", &input); for(int i = 0; i
-
2017.05.31
원형 큐 (Circular Queue) 예
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106// 원형 큐 예 #include #include typedef int element;typedef struct { element *queue; int front, rear; int size;} QueueType; void init(QueueType *q) { q->front = q->rear = 0; q->size = 2; // 원형..
-
2017.05.31
중위 표기 수식을 전위 표기 수식으로 변환하는 프로그램
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12..
-
2017.05.16
중위 표기 수식을 후위 표기 수식으로 변환하는 프로그램
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107// 중위 표기 수식을 후위 표기 수식으로 변환하는 프로그램 #include #include #define MAX_STACK_SIZE 100 typedef char element; typedef struct { element stack[MAX_STACK_SIZE]; int top;} StackType; // 스택 초기화 함수voi..
-
2017.05.16
후위 표기식 계산 프로그램
5
- 수식을 표기하는 방법에는 중위(infix), 후위(postfix), 전위(prefix)의 3가지 방법이 있음.- 연산자가 피연산자 사이에 있으면 중위이고, 연산자가 피연산자 뒤에 있으면 후위이며, 연산자가 피연산자 앞에 있으면 전위라고 함.- 인간은 주로 중위 표기법을 사용하지만 컴파일러는 주로 후위 표기법을 사용함.- 후위 표기 수식은 괄호가 없어도 우선순위가 반영되어 있음. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485// 후위 표기식 계산 #include ..
-
2017.05.11
괄호 검사 프로그램
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697// 괄호 검사 프로그램 #include #include #define TRUE 1#define FALSE 0#define MAX_STACK_SIZE 100 typedef char element; typedef struct { element stack[MAX_STACK_SIZE]; int top;} StackType; // 스택 초기화 함수void init(StackType *s..
-
2017.05.08
연결 리스트로 구현된 리스트 ADT 테스트 프로그램
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12..
-
2017.05.08
이중 연결 리스트의 다항식 프로그램
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 #include #include // 연결 리스트의 노드의 구조 typedef struct..
-
2017.05.03
별 찍기 (Asterisk Decoration) in C
[소스1] 1 2 3 4 5 6 7 8 9 10 11 12 13 #include int main(void) { int i, j; for (i = 1; i
-
2017.04.26
Multiplication Tables (9X9, 18X18) in C
9 X 9 Multiplication Table 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include int main(void) { printf("Multiplication Table (9X9) \n"); for (int i = 0; i
-
2017.04.17
Numbers in Ascending/Descending Order with using Recrusion in C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include void recur_print(int n) { recur_print(10); } // 10 9 8 7 6 5 4 3 2 1 void recur_print(int n) { if (n > 0) { printf("%d ", n); recur_print(n-1); } } // 1 2 3 4 5 6 7 8 9 10 void recur_print(int n) { int a; if (n > 0) { recur_print(n-1); printf("%d ", n); } } cs As you can see, if you put the part for recursion before you put the pa..
-
2017.04.17
Sum of Numbers in Ascending/Descending Order with using Recursion in C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include int print_sum(int n); void main() { printf(" = %d", print_sum(10)); } // 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 int print_sum(int n) { if (n