제 1 강
기본 자료형 #include<stdio.h> void main(void) { int integer_value = 10; float float_value =4.5; char char_value = 'a'; printf("정수:%d\n", integer_value); printf("실수:%f\n", float_value); printf("문자:%c\n",char_value); }
논리형 자료 #include <stdio.h> int main() { int a, b; scanf("%d %d", &a, &b); printf("%d && %d = %d\n", a, b, a && b); printf("%d || %d = %d\n", a, b, a || b); printf("!( %d ) = %d !( %d ) = %d\n", a, !a, b, !b); return 0; }
포인터형 자료 #include <stdio.h> void main() { int *p; int a; p=&a; printf("%p\n", p); printf("%d\n", *p); }
제 2 강
Factorial 알고리즘 Factorial(n) if (n <= 1) then return 1 else return (n·factorial(n-1)); end Factorial()
#include <stdio.h> int f, x; int factorial(int a); int main() { puts("Enter an interger value"); scanf("%d", &x); f=factorial(x); printf("%d factorial is %d\n", x, f); return 0; } int factorial(int a) { if(a==1) return 1; else { a *= factorial(a-1); return a; } } Factorial(3) { if(3==1) return 1; else return(3*factorial(3-1)); } Factorial(2) if(2==1) return 1; else return(2*factorial(2-1)); Factorial(1) if(1==1) return 1; …. ① ② ③ ④
이진탐색 알고리즘 binsearch(a[], key, left, right) // a[mid] = key인 인덱스 mid를 반환 if (left <= right) then { mid ← (left + right) / 2; case { key = a[mid] : return (mid); key < a[mid] : return (binsearch(a, key, left, mid-1)); key > a[mid] : return (binsearch(a, key, mid+1, right)); } } else return -1; // key 값이 존재하지 않음 end binsearch()
#include <stdio.h> int Binarysearch( int A[], int x , int l, int r ); void main(void) { int A[] = { 1, 4, 7, 9, 12, 24, 32, 90, 120 }; int srch, i; printf( "정렬된 배열 ...\n" ); for( i = 0; i < sizeof(A)/sizeof(A[0]); i++ ) printf( "%d ", A[i] ); printf( "\n찾을 수 입력: " ); scanf( "%d", &srch ); i = Binarysearch( A, srch, 0, 8); if( i == - 1 ) printf( "정수 %d를 찾을 수가 없습니다.\n", srch ); else printf( "정수 %d는 배열의 %d번 위치에 있습니다.\n", srch, i+1 ); }
int Binarysearch( int A[], int x , int l, int r ) { int med; if( l <= r ) med = ( l + r ) / 2; if( A[med] == x ) return med; if( A[med] > x ) return Binarysearch( A, x, l, med-1); else return Binarysearch( A, x, med+1, r); } return -1; 1 4 7 9 12 24 32 90 120 2 3 5 6 8
피보나치 수열 알고리즘 fib(n) if (n<=0) then return 0; if (n=1) then return 1 else return (fib(n-1)+fib(n-2)); end fib()
#include <stdio.h> int fib (int n); void main() { int n; printf("숫자를 입력하세요 : "); scanf("%d", &n); printf("0 "); for(int i=1; i<=n ; i++) printf("%d ", fib(i)); } int fib(int n) if (n==0) return 0; else if (n==1) return 1; else return (fib(n-1)+fib (n-2));