본문 바로가기

전체 글105

[열혈 자료구조] 리스트의 ADT를 기반으로 정의된 main 함수 리스트의 ADT를 정의하였으니, 이를 기반으로 main 함수를 만들 차례이다. 아래에서 제시하는 main 함수를 기반으로 리스트 ADT에서 소개하는 함수들의 기능을 완전히 이해하기로 하자. 아래의 main 함수를 보면서, 어떤 라이브러리에 포함되어 있는 리스트의 사용방법을 파악하는 상황이라고 생각하기 바란다. #include #include "ArrayList.h" int main(void) { // ArrayList의 생성 및 초기화 List list; int data; ListInit(&list); // 초기화 // 5개의 데이터 저장 // LInsert(&list, 11); LInsert(&list, 11); LInsert(&list, 22); LInsert(&list, 22); LInsert(&l.. 2023. 1. 25.
잠원 한강 테니스장 잠원 한강 테니스장에 왔다. 장일이는 야근이 있다고해서 일단은 지현이와 나, 둘이서 테니스를 칠 예정이다. 지현이는 퇴근시간에 강남에 왔다고 불만이 가득했다. 나는 그런 그녀의 투정도 사랑스럽다. 오늘 테니스가 기대가 된다. 우리부부 단둘이서 처음으로 치는 테니스기 때문이다. 앞으로 테니스라는 운동이 우리 가정안에서 깊게 뿌리내려 온 가족이 즐기는 운동이 되었으면 좋겠다. 2023. 1. 10.
일본 오사카 여행 01 드디어 기나긴 입국수속 절차를 거치고 숙소로 가는중이다. 내가 기차표를 교환하는 과정에서 잘못 줄을 서고, 이티켓을 교환하는데 버벅여서 지현이가 답답했는지 버럭 화를 냈다. 한바탕 입국 절차를 마치고 지현이는 잠이 들고, 난 이렇게 글을 쓰고 있다. 즐겁고 안전한 일주일간의 일본여행이 되길 기도한다. 2023. 1. 1.
송구영신예배 1 "너희는 마음에 근심하지 말라. 하나님을 믿고 또 나를 믿으라. 2 내 아버지의 집에는 있을 곳이 많다. 그렇지 않았다면 너희에게 미리 말해 두었을 것이다. 나는 너희가 있을 곳을 마련하러 간다. 3 내가 가서 너희가 있을 곳을 마련하면 다시 와서 너희를 내게로 데려갈 것이다. 그러면 너희도 내가 있는 곳에 함께 있게 될 것이다. 4 너희는 내가 어디로 가는지 그 길을 알고 있다." 5 도마가 예수께 물었습니다. "주여, 저희는 주께서 어디로 가시는지 알지 못하는데 그 길을 어떻게 알겠습니까?" 6 예수께서 도마에게 말씀하셨습니다. "나는 길이요, 진리요, 생명이니 나를 통하지 않고서는 아버지께로 올 사람이 없다. (요14:1-6, 우리말성경) 2023. 1. 1.
[열혈 C 프로그래밍] 구조체 변수와 포인터 구조체 배열의 선언 및 접근의 방법이 일반적인 배열의 선언 및 접근의 방법과 다르지 않듯이. 구조체 포인터 변수의 선언 및 연산의 방법도 일반적인 포인터 변수의 선언 및 연산의 방법과 다르지 않다. #include struct point { int xpos; int ypos; }; int main(void) { struct point pos1 = {1,2}; struct point pos2 = {100, 200}; struct point * pptr = &pos1; (*pptr).xpos += 4; (*pptr).ypos += 5; printf("[%d, %d] \n", pptr->xpos, pptr->ypos); pptr=&pos2; pptr->xpos+=1; pptr->ypos+=2; printf(".. 2022. 12. 31.
[열혈 C 프로그래밍] 문제 22-2 구조체 배열의 선언 앞서 문제 22-1에서 정의한 employee 구조체를 기반으로 길이가 3인 배열을 선언하자. 그리고 세 명의 정보를 프로그램 사용자로부터 입력 받아서 배열에 저장한 다음, 배열에 저장된 데이터를 순서대로 출력하는 예제를 작성해보자. #include struct employee { char name[20]; char register_num[20]; int account_num; }; int main() { struct employee arr[3] = { {"김현수", "010", 833}, {"강익선", "011", 033}, {"이장일", "012", 045} }; int i; for(i=0; i 2022. 12. 30.
[열혈 C 프로그래밍] 구조체 배열의 초기화 구조체 변수를 선언과 동시에 초기화할 때에는 다음과 같이 중괄호를 통해서 초기화할 값을 명시한다. 따라서 구조체 배열을 선언과 동시에 초기화할 때에는 다음과 같이 배열의 길이만큼 중광호를 이용해서 초기화를 진행하면 된다. #include struct person { char name[20]; char phoneNum[20]; int age; }; int main(void) { struct person arr[3]={ {"김현수", "010-7534-5128", 21}, {"김현슨", "010-7552-5128", 21}, {"김현슈", "010-7512-5128", 21} }; int i; for(i=0; i 2022. 12. 30.
[열혈 C 프로그래밍] 도전! 프로그래밍2 - 도전3 도전 3 길이가 10인 배열을 선언하고 총 10개의 정수를 입력 받는다. 단, 입력 받은 숫자가 홀수이면 배열의 앞에서부터 채워나가고, 짝수이면 뒤에서부터 채워나가는 형식을 취하기로 하자. #include int main() { int arr[10]; int front=0, back=9; int i, num; printf("총 10개의 숫자 입력\n"); for(i=0; i 2022. 12. 29.
[열혈 C 프로그래밍] 도전! 프로그래밍2 - 도전1 도전 1 길이가 10인 배열을 선언하고 총 10개의 정수를 입력 받아서, 홀수와 짝수를 구분 지어 출력하는 프로그램을 작성해 보자. 일단 홀수부터 출력하고 나서 짝수를 출력하도록 하자. 단, 10개의 정수는 main 함수 내에서 입력 받도록 하고, 배열 내에 존재하는 홀수만 출력하는 함수와 배열 내에 존재하는 짝수만 출력하는 함수를 각각 정의해서 이 두 함수를 호출하는 방식으로 프로그램을 완성하자. #include void show_odd_num(int * arr, int size); void show_even_num(int * arr, int size); int main(void) { int arr[10]; int i; printf("총 10개의 숫자 입력\n"); for(i=0; i 2022. 12. 29.
[열혈 C 프로그래밍] '형(Type)'이 존재하지 않는 void 포인터 다음과 같이 선언되는 포인터 변수를 가리켜 'void형 포인터 변수'라 한다. void * ptr; void형 포인터 변수는 무엇이든 담을 수 있는 바구니에 비유할 수 있다. void형 포인터 변수에는 어떠한 변수의 주소 값이든 담을 수 있다. 하다못해 함수의 주소 값도 담을 수 있다. #include void SoSimpleFunc(void) { printf("I'm so simple"); } int main(void) { int num=20; void * ptr; ptr=# // 변수 num의 주소 값 저장 printf("%p \n", ptr); ptr=SoSimpleFunc; // 함수 SoSimpleFunc의 주소 값 저장 printf("%p \n", ptr); return 0; } 하지만.. 2022. 12. 28.
[열혈 C 프로그래밍] 적절한 함수 포인터 변수의 선언 포인터 변수에는 반환형 정보와 매개변수 선언의 정보가 모두 표현되어 있어야 한다. #include void SimpleAdder(int n1, int n2) { printf("%d + %d = %d \n", n1, n2, n1 + n2); } void ShowString(char * str) { printf("%s \n", str); } int main(void) { char * str = "Function Pointer" int num1=10, num2=20; void (*fptr1)(int, int) = SimpleAdder; void (*fptr2)(char *) = ShowString; /* 함수 포인터 변수에 의한 호출 */ fptr1(num1, num2); fptr2(str); return 0.. 2022. 12. 28.
두 가지 이름 21 마리아가 아들을 낳을 것이니 그 이름을 '예수'라 하여라. 예수가 그의 백성을 그들의 죄로부터 구원할 것이다." 22 이 모든 일이 일어나게 된 것은 주께서 예언자를 통해 말씀하신 것을 성취하기 위함이었습니다. 2022. 12. 25.