728x90

프로그래밍 209

C언어 구조체 및 공용체 주요예제3 (queue구현)

내용 출처 : YES C (정보공학연구소 /생능출판사) 단순 연결 리스트를 이용하여 생성한 큐(queue)를 이용하는 프로그램 // A linked list implementation of a queue. #include #include #include #include #define EMPTY0 #define FULL10000 typedef unsigned int data; struct element{ data d; element* next; }; //an element in the queue struct queue { int cnt;//a count of the elements element* front;//ptr to the front element element* rear;//ptr to the r..

C언어 구조체 및 공용체 실습문제1 (선형 연결 리스트에서 특정문자 삭제하기)

입력된 데이터 중에서 특정 문자를 지울 수 있는 프로그램 // practics.cpp: 콘솔 응용 프로그램의 진입점을 정의합니다. // #include "stdafx.h" //linear linked list example #include #include #include #define MAXLINE 100 typedef char DATA;// will use char in examples struct linked_list { DATAd; linked_list*next; }; typedef linked_list ELEMENT; typedef ELEMENT*LINK; void concatenate(LINK a, LINK b); int count(LINK head); int count_it(LINK head)..

C언어 구조체 및 공용체 주요예제2 (선형 연결 리스트)

내용 출처 : YES C (정보공학연구소 /생능출판사) 선형 연결 리스트 예제 //linear linked list example #include #include #include #define MAXLINE 100 typedef char DATA;// will use char in examples struct linked_list { DATAd; linked_list*next; }; typedef linked_list ELEMENT; typedef ELEMENT*LINK; void concatenate(LINK a, LINK b); int count(LINK head); int count_it(LINK head); LINK string_to_list(char s[]); void delete_list(LI..

C언어 구조체 및 공용체 주요예제1 (구조체)

구조체 내의 char형 배열에 문자열 값을 넣을 때는 strcpy_s()함수를 쓴다 . #include #include struct member { char name[10]; char sex; int age; }; int main() { member kdh; strcpy_s(kdh.name, "홍길동"); //strcpy_s()함수를 이용해 char형 배열에 값을 대입할 수 있다. kdh.sex = 'm'; kdh.age = 22; printf("이름 : %s \n", kdh.name); printf("성별 : %c \n", kdh.sex); printf("나이 : %d \n", kdh.age); } 바로 대입하고 싶을 때.#include struct member { const char* name; //..

C언어 이론 9. 구조체 및 공용체 (공용체, 열거형)

내용 출처 : YES C (정보공학연구소 /생능출판사) 혼자 연구하는 C/C++ (SoEn.kr /와우북스) Ⅰ. 공용체 (union) ① 여러 자료형의 원소들이 공통으로 사용할 수 있는 기억장소를 정의하고, 한번에 하나의 멤버의 값만 저장하는 자료형. ② 구조체와 유사하여 구조체에서 사용하는 연산자를 그대로 사용한다. ③ 구조체를 선언하는 기본적인 방식은 다음과 같다. 구조체에서의 4가지 바리에이션을 다 적용할 수 있다. union { }; 예시 ) ④ 공용체의 이름 또한 구조체 이름처럼 하나의 타입으로 취급된다. ⑤ 공용체 또한 변수를 선언하면서 초기화 할 수 있지만 첫 요소만 가능하다. ⑥ 공용체는 주로 논리적으로 유사한 값에 대해서 사용한다. Ⅱ. 이름 없는 공용체 ① 공용체에 공용체 이름도 지정..

C언어 이론 9. 구조체 및 공용체 (동적할당)

내용 출처 : YES C (정보공학연구소 /생능출판사) 혼자 연구하는 C/C++ (SoEn.kr /와우북스) Ⅰ. 정적 할당(Static Allocation)과 동적 할당(Dynamic Allocation) ① 정적 할당은 프로그램을 작성할 때 필요한 메모리양을 미리 알려주어 컴파일러가 그 만큼 메모리를 할당하는 것을 말한다. ② 대부분의 변수들은 선언시 이러한 정적 할당의 방법으로 할당되며 배열도 그러하기에 배열의 크기에는 상수값만 올 수 있다. ③ 하지만 프로그램 작성시에는 메모리가 얼마나 필요한지 전혀 알 방법이 없을 때도 있다. ④ 이럴때 사용하는 방법이 동적할당으로 이는 프로그램 실행중에 필요한 만큼의 메모리를 할당하는 것을 의미한다. Ⅱ. 메모리 관리 원칙 ① 현재의 32비트 이상의 시스템에서..

C언어 연습문제 풀이 CH8 (18 ~ 22)

18. 다음 프로그램의 결과를 분석하라. #include int main() { int i[3] = { 100, 200, 300 }; int *iptr1, *iptr2; printf(" 1) i[0] = %5d; &i1 = %5u \n", i[0], &i[0]); printf(" 2) i[1] = %5d; &i2 = %5u \n", i[1], &i[1]); printf(" 3) i[2] = %5d; &i3 = %5u \n\n", i[2], &i[2]); iptr1 = &i[1]; printf(" 4) iptr1 = %5u; *iptr1 = %5u \n\n", iptr1, *iptr1); iptr1 += 1; printf("Adding 1 to POINTER varibale \n"); printf(" 5)..

C언어 연습문제 풀이 CH8 (16~17)

16. 문자열을 이용하여 이진수 덧셈을 하는 프로그램을 작성하라. 이진수는 80자리까지 입력 가능하다고 가정하라. #include #include #include char* binaryAdd (char* b1, char* b2); int main() { char b1[80]; char b2[80]; int ok = 1; do { printf("첫번째 2진수를 입력하세요 :"); scanf_s("%s", b1, 80); while (getchar() != '\n') {} for (int i = 0; b1[i] != '\0'; i++) { if (!(b1[i] == '0' || b1[i] == '1')) { ok = 1; break; } else { ok = 0; } } } while (ok); do { p..

C언어 연습문제 풀이 CH8 (12~15)

12. 다음 프로그램의 결과를 분석하라. #include int main() { int *ip1, *ip2; double *dp1, *dp2; int i1 = 1, i2 = 2; double d1 = 11.111, d2 = 22.222; ip1 = &i1; ip2 = ip1; dp1 = &d1; dp2 = dp1; printf("%8s %8s %8s %8s\n", " &ip1", " ip1", " &i1", " i1"); printf("%8u %8u %8u %8d\n\n", &ip1, ip1, &i1, i1); printf("%8s %8s %8s %8s\n", " &ip2", " ip2", " &i2", " i2"); printf("%8u %8u %8u %8d\n\n", &ip2, ip2, &i2, i2..

C언어 연습문제 풀이 CH8 (1 ~ 11)

1. 배열 arr에 {1,3,5,7,9}를 대입하고, 배열요소의 총합을 구하는 프로그램을 포인터를 이용해서 작성하라. #include int main() { int arr[5] = { 1,3,5,7,9 }; int* iptr = arr; int num = sizeof(arr) / sizeof(arr[0]); int sum = 0; for (int i = 0; i < num; i++) { printf("%d", *iptr); sum += *iptr++; if (i != num) { printf(" + "); } else { printf(" = "); } } printf("%d\n", sum); } 2. 2차원 배열 matrix[5][5]를 선언하고 포인터변수를 이용하여 모든 요소를 0으로 초기화하고... ..

반응형