반응형

코딩 이야기 39

[C언어] 삽입 정렬 구현 프로그램

삽입정렬이란? 정렬되어 있는 부분집합(S)에 정렬할 원소의 위치를 찾아 삽입하는 방식으로 정렬을 수행한다. 특징 1. 정렬할 자료가 2개의 부분집합 S(Sorted Subset)와 U(Unsorted Subset)으로 나누어져있다. 2. 제일 앞부분 원소부터 정렬을 수행한다. (정렬된 앞부분의 원소의 부분집합이 S, 정렬되지 않은 원소의 부분집합은 U가 된다.) 3. 정렬되지 않은 부분집합 U의 원소를 하나씩 꺼내서 S의 마지막 원소부터 비교하면서 삽입한다. 4. 실행을 한번할때마다 S의 원소는 하나씩 늘고 U의 원소는 하나씩 줄어든다. (이후, U가 공집합이 되면 실행이 종료된다.) 예시 (한번 실행될때마다 S의 부분집합이 한개씩 늘어나는 모습이다) #include #define Size 8 void ..

코딩 이야기 2021.10.09

[C언어]퀵 정렬 프로그램 구현하기

퀵 정렬은 정렬에서 정말 중요한 방법이므로 필시 숙지해야하는 방법입니다. 피봇 개념이 어려울수있는데 코드를 실행시키면서 정확히 개념을 집으면 정말 쉽고 간단한 정렬입니다 #include typedef int element; int size, i = 0; //피봇 위치를 확정하고 분할 위치를 정하는 함수 int partition(element a[], int begin, int end) { int pivot, L, R, t; element temp; L = begin; R = end; pivot = (int)((begin + end) / 2.0); //피봇은 중심값으로 설정 printf("\n [%d단계: pivot= %d ] \n", ++i, a[pivot]); while (L < R) { //L은 R보..

코딩 이야기 2021.10.08

[C언어] UNION을 이용한 메모리 공유

목표: UNION 을 이용하여 학번/주민등록번호를 이용하여 사람을 조회해보자 ->struct와 유사한 구조를 가진 union을 이용하면 같은 메모리를 이용하기때문에 메모리 관리에 더 안정적이고 속도를 높일수있습니다 #define _CRT_SECURE_NO_WARNINGS #include #include #define STU_NUMBER 1 #define REG_NUMBER 2 struct student { int type; //공용체가 현재 어떤 변수를 사용하는지를 저장한다 union { int stu_number;//학번이나 char reg_number[15] ;//주민등록번호를 알면 학생을 구별할수있다 }id; char name[20]; }; void print(struct student s) { s..

코딩 이야기 2021.08.28

[C언어] 문자열의 암호화 구현하기 (줄리어스 시저)

오늘은 줄리어스 시저가 처음 사용한 암호화 기법을 C언어로 구현해보겠습니다. 아스키 코드값에서 왼쪽이든 오른쪽이든 일정한 숫자만큼 쭉 밀기만 하면 되는 방법으로 아주 간편한 방법입니다 #include void encrypt(char cipher[], int shift); void main() { char cipher[50]; int shift = 3; printf("문자열을 입력해주세요"); gets_s(cipher, 50); encrypt(cipher, shift); printf("암호화된 문자열:%s", cipher); } void encrypt(char cipher[], int shift) { //문자열 배열 원본이 왔다 int i = 0; while (cipher[i] != '\0') { if (..

코딩 이야기 2021.08.23

[C언어] 연도, 월, 일 날짜를 입력하면 요일을 반환하는 함수를 구현해보자( 문자열, 배열 사용)

학습목표: 연도, 월, 일을 입력하면 해당 요일을 출력해주는 프로그램 구현 목표 1. 윤년에 대하여 알아보자 윤년이란? 1. 4로 나누어 떨어지는 년도 2. 4로 나누어 떨어지더라도 100으로도 나누어 떨어지면 평년 3. 100으로 나누어떨어져도 400으로 나누어 떨어지면 윤년 결론. 윤년:(year%4==0)&&((year%400==0)||(year%100!=0)) 목표 2. 매년 1월 1일의 요일의 규칙 찾기 1년 : 월요일 (윤년) 2년 : 화요일 (윤년) ... 2016년 : 금요일 (윤년) 2017년 : 일요일 (평년) 2018년 : 월요일 (평년) 2019년 : 화요일 (평년) 2020년 : 수요일 (윤년) 2021년 : 금요일 (평년) 결론. 윤년이 나오면 다음연도의 1월 1일 요일이 하루 ..

코딩 이야기 2021.08.15
반응형