본문 바로가기

전체 글261

구조체, 공용체 종류 및 예 //단순 구조체 #include struct score{ char name[20]; int kor, eng, mat; }; typedef struct score Score; void structPrint(char*, int, int, int); void main() { Score sd = {"Hong gil dong", 80, 90, 100}; structPrint(sd.name, sd.kor, sd.eng, sd.mat); } void structPrint(char *cp, int i, int k, int j) { printf("%s : %d, %d, %d\n", cp, i, k, j); } // 중첩 구조체 #include struct AA{ int a; long b; }; struct BB{ int.. 2009. 3. 4.
구조체를 통한 링크드 리스트의 예 #include struct AA{ int a; struct AA *p; // 이것이 바로 링크드 리스트!! // 즉 그 구조체에 관한 주소값을 가지고 있는 것이다. }; void main() { struct AA x, y, z; struct AA *i; x.a = 10; y.a = 20; z.a = 30; x.p = &y; y.p = &z; z.p = NULL; struct AA k; k.a=40; k.p=y.p; y.p=&k; x.p=&k; for(i=&x; i != NULL; i=i->p){ printf("%d\n", i->a); } } 2009. 3. 4.
문자열 출력 예 // 첫번째 예제 #include void main() { FILE *fp; char ch; fp = fopen("c:\\sample.txt", "r"); // sample.txt로 부터 Read(r) while(1){ ch=fgetc(fp); if(ch==EOF) // 문장의 끝까지 break; printf("%c", ch); } fclose(fp); } // 두번때 예제 #include //문자열로 출력 void main() { FILE *fp; char ch[100]; // 여유있게 100byte읽어 옮 fp = fopen("c:\\sample.txt", "r"); while(1){ fgets(ch, 100, fp); // fp에서 100byte만큼 읽어서 ch에 저장 2009. 3. 4.
이름과 숫자 1~4까지의 답 10개를 입력 받아 O,X 표시 및 평균 및 최고득점자와 최소 득점자 출력하는 로직 // 이름과 숫자 1~4까지의 답 10개를 입력 받아 O,X 표시 및 평균 및 최고득점자와 최소 득점자 출력하는 로직 #include #include #include #define Read "c:\\saram.txt" // 데이터가 저장되어 있는 파일 #define Wirt "c:\\result.txt" // 결과값을 저장할 파일 int max=0, min=100; // max는 커져야 함을 0이고 min은 작아져야 함으로 100이다. double avg=0; struct AA // 사람 이름과 답을 저장해 놓은 구조체 { char name[10]; char num[11]; }; void result(char *); // 데이터를 받아 계산한 후 result.txt로 저장하는 함수 void menu(ch.. 2009. 3. 4.
포인터 #include // 포인터의 포인터 예제 char *c[]={"ENTER", "NEW", "POINT", "FIRST"}; char **cp[]={c+3, c+2, c+1, c}; char ***cpp=cp; void main() { printf("%s\n", **++cpp); // PIONT printf("%s\n", *--*++cpp+3); // ER printf("%s\n", *cpp[-2]+3); // ST printf("%s\n", cpp[-1][-1]+1); // EW } // 단순한 포인터 예제 void main() { int x, y; int *px, *py; x=5; px=&x; y=*px/2+10; py=&y; printf("x : %d, y : %d\n", x, y); // 5, 1.. 2009. 3. 4.
이름과 점수를 입력받아 관리하는 프로그램 #include #include #include #define DataFile "c:\\data.txt" void menu(); void input_sub(); void append_sub(); void search_sub(); void view_sub(); struct AA{ char name[20]; // 이름 저장할 배열 int kor, eng, tot; // 국어, 영어, 총점 double avg; // 평균 }; void main() { char ch; while(1){ menu(); ch = getche(); // 문자하나를 받아 ch에 저장 switch(ch){ case '1' : input_sub(); break; case '2' : append_sub(); break; case '3' :.. 2009. 3. 4.
KMP 알고리즘... #include #include #include #include using namespace std; class KMP { private : char array[200], pat[10]; // array는 비교할 문자열, pat는 찾을 문자열 int temp; // 비교할 문자의 실패함수의 현재 값 int f_pat[10]; int i, k; // 함수 제어의 필요한 함수 int n, l; // n은 찾을 문자열의 길이 l은 비교할 문자열의 길이 public : KMP() { temp=-1, i=0, k=0; for(i=0; i input(); } void KMP::makefaile() { int val=0, p=0; // val은 실패함수에 들어갈 값이고 p는 함수 제어 변수이다. int j=1, i;.. 2009. 3. 4.
마방진~ Magic square #include class Magic { private : int row, col; // 2차 배열의 가로와 세로 값 int ro, co; // 변환시 가로와 새로 값 int **p; // 2차 동적 배열의 포인터 public : // 생성자 Magic(){ row=col=0; ro=co=0; } //소멸자 ~Magic(){ delete[] p; } void select(); // 초기 선택문 void evefun(int i); // 짝수 4의 배수 구현 함수 void oddfun(int i); // 홀수 구현 함수 void printout(int i); // 출력 함수 void change(int i); // 홀수 마방진의 이동 제어 함수 void swap(int i, int k, int n); // .. 2009. 3. 4.
Distinct Binary Tree(상이한 이진 트리) #include #include #include using namespace std; class Tree // 프로그램 전체를 제어하는 클래스 { private: int leftcount; // 비주얼하게 출력 시 왼쪽 자식을 표현하기 위한 변수 int rightcount; // 비주얼하게 출력 시 오른쪽 자식을 표현하기 위한 변수 public: Tree() // 생성자 함수 { leftcount = rightcount = 0; } ~Tree() // 소멸자 함수 { } void Input(); // 값을 입력 받는 함수 void Output(int); // Tree를 비주얼하게 출력하는 함수 unsigned long Treecount(int); // 입력 받은 노드로 만들 수 있는 트리 개수를 계산할 .. 2009. 3. 4.
Sort - 정렬 아래 소개할 프로그램은 난수파일(input.txt)파일로부터 난수들을 사용자가 지정한 수 만큼 읽어 들여와서 Insert(삽입), Quick(빠른), Heap(힙), Merge(합병), Selection(선택), Bubble(버블) 별로 정렬하고 그 결과를 화면에 보여주고 각 정렬하는데 걸리는 시간을 측정하는 프로그램이다. 필자가 작성한 별도의 코드에는 정렬 과정도 출력하는 코드도 있지만 그건 이 코드를 아~~~주 조금만 손 보면 가능한 것이기에 따로 올리지는 않겠다. 그리고 이번에 새로 사용해보는 SyntaxHighlighter 관계상 코드의 복사가 가능함으로 주요 코드만 올리겠다. 우선 코드를 보면... // 삽입 정렬 void Sort::insertsort() { int j=0; int i=1;//.. 2009. 3. 4.
10진수를 2진수로 변환하는 코드 아는 형의 권유로 아무생각 없이 만든 코드이다. 하는 일은 unsigned int형을 받아서(범위 : 0~4294967296, 단 int가 4바이트인 컴퓨터에서...) 2진수로 출력하는 형태이다. 아무 생각 없이 짤려면 아무생각 없이 만들수도 있었지만 왠지 자꾸 무의미한 메모리 할당이 싫어서 동적할당을 사용하였다. C++만 하다 C로 동적할당을 하려고 하니 이것도 쉽지 않았지만 가장 불편했던 것은 cout을 못쓰고 printf를 써야했던 점이다... 뭐 경우에 따라서는 printf가 편하기도 하지만 대체적으로 사용의 편의성에는 cout이 났다. printf는 표현의 편의성이 뛰어나지만... 아무튼 아래는 코드다. #include #include #include void main() { char* bana.. 2009. 3. 4.
과제 18 : 다아몬드 출력 //18day homework #include void main() { int input, blank; int i, k; printf("Line is ? : "); scanf("%d", &input); if(input%2 == 0) { input -= 1; } blank = input/2; k = blank; //다이아몬드 윗부분 while(k>0) { for(i = 0; i 2009. 3. 4.
7/15 두번째 강의 [출력형태] 실수형이난 다른 숫자를 출력할 경우 %(숫자1).(숫자2)(출력형태)가 있다. 숫자1은 총 칸 수로 10을 잡고 우측정렬로 출력하라는 소리이다. 만약에 자리수가 부졳할 경우 무시하고 출력하게 된다.여기서 .도 한칸을 차지하게 된다. 숫자2는 어제도 언급한 소수점 아래 자리로 소수점 아래자리 2를 입력하면 소수점 아래자리 3번째에서 반올림하여 2칸까지 출력하라는 소리이다. [오늘 배운 내용] 1. 정수형태와 실수형태의 표현 방법 2. printf와 scanf의 기본적인 사용 방법 및 옵션 3. 단일문자 및 기초적인 문자열 출력 방법 2009. 3. 4.
[PSP]몬스터 헌터 2nd G - 퀘스트 목록 좀전에 보스급 몬서터 정보를 올린 것에 이어 바로 촌장과 네코트의 퀘스트 목록 입니다. 솔직히 퀘스트란 것은 그냥 진행하는 순서대로 하면 되긴 하지만 그래도 어느 몬스터가 언제쯤 등장하는지 궁금해 지는 것이 인지상정~ 뭐 그러한 이유로 올립니다. 보시죠 현재 필자는 6성 퀘를 하고 있습니다. 5성의 오오나즈치 때문에 애지간히 열좀 받았었지만요 ㅎㅎ 정말 놓치면 제대로 열받습니다. 모두 조심하시길... 2009. 2. 28.
[PSP]몬스터 헌터 2nd G - 보스급 몬스터 공략 정보 안녕하세요. TDR입니다. 얼마전에 웹 서핑을 하다가 우연히 몬헌2G의 보스급 몬스터 들의 대략적인 정보가 나와 있는 표를 구하게 되어서 이렇게 올릴려고 합니다. 워낙 대중적인 자료이다 보니 크게 도움이 안 될지도 모르지만 있는 거랑 없는 거는 또 얘기가 틀리니까 올리도록 하겠습니다. 이상이 대략적인 공략 정보입니다. 뭐 어차피 사냥이 들어가면 저런 속성보다는 몬스터의 행동 패턴과 상태 변화에 따른 대처가 더 중요하지만요... 그래도 조금은 준비해서 가는게 좋습니다 ^^ 왜냐하면 속성에 따라 부위를 파괴할 수 있냐 없냐도 좌우 되거든요~ 2009. 2. 27.
[PSP]몬스터 헌터 2nd G 채집도 - 화산편 정말 광석의 보고!! 라고 말할 수 있는 최고의 채광맵~ 약간의 문제가 있다면 화산지역이라 대부분의 장소에서 쿨드링크를 마셔야 한다는 거지만 그만큼의 가치는 한다고 봅니다. 그냥 픽켈 4개가지고는 부족하고 마카라이트 광석으로 만든 크레이트 픽켈 5개를 가지고 다니는 것이 안전빵. 마카라이트 광석을 소비하고 싶지 않으신 분들은 허술한 픽켈 3개와 일반 픽켈 4개를 가지고 다니시면 간당간당 할 듯? 뭐 그만큼 채광할 곳이 많은 맵입니다~ 좋은게 좋은 거지 않겠습니까~ ㅎㅎ 그럼 보시죠~ 2009. 2. 20.
[PSP]몬스터 헌터 2nd G 채집도 - 언덕편 긴말 없이 바로 꼬~ 2009. 2. 20.
[PSP]몬스터 헌터 2nd G 채집도 - 습지편 드디오 필자도 4성 퀘스트를 받고하고 있습니다. 저번에 사막까지 올렸는데 이번에 습지, 언덕, 화산을 올리겠습니다. 솔직히 습지와 언덕은 그다지~ 좋은 느낌은 아니었지만 개인적으로 습지는 맵이 간단하고 이동하기 편해서 좋았습니다~ 언덕은 뭔가 싫음 ㅋㅋ 화산 채광짱!!! 아... 그리고 이번부터는 전채맵이 없습니다. 구할려고 한다면 구할 수도 있는데... 귀찮아서 ( -_-) 양해 바랍니다~ 그럼 보시죠~ 2009. 2. 20.
[PSP]몬스터 헌터 2nd G 채집도 - 사막편 밀림편에 이어 곧바로 사막편!! 사막에는 밀림과 달리 좀 특이한 재료를 채집할 수 있습니다. 뭐... 그렇게 따지면 설산도 그렇군요 하하하 (설산초라던가?) 아무튼, 사막은 밀림에서 말했다시피 사막 지역으로 가면 열기로 인해 HP가 야금야금 줄어 듭니다. 이게 왠만한 몬스터 한테 한대 맞는거 보다 무섭다는거... 그래서 쿨드링크는 정말 반드시 必히 가져가야 합니다. 솔직히 설산에서는 핫드링크 안 마셔도 죽지는 않는데 사막에서는 그렇지 않거든요... 실제로는 둘다 죽을꺼 같기는 마찬가지지만... (필자는 개인적으로 더위보다 추위가 더 무섭다.) 아, 그리고 이 지도에는 안 나왔는데 스타트지점에서 바로 6번 구역으로 가는 길이 있습니다. 스샷이 없는 관계로 말로 설명하자면 6번 구역 방향을 보면 검은 구멍이.. 2009. 2. 12.
[PSP]몬스터 헌터 2nd G 채집도 - 밀림편 이번에는 저번(사실은 1시간 전)에 올린 설산편 채집도에 이어 밀림편을 올리겠습니다. 저는 개인 적으로 밀림을 좋아합니다. ^^ 온도차가 그리 극심한 곳이 없어서 핫드링크 or 쿨드링크(맞나?)를 마실 필요가 없기 때문입니다~ ㅎㅎㅎ 그리고 생각보다 다양한 재료들을 채집할 수도 있고 한 구역에서 다른 구역으로 가는 길도 생각보다 많아서 여러모러 편합니다~ 빌어먹을 벌들만 빼면 말이죠 -_-+ 그럼 보시죠~ 2009. 2. 12.
강의2 - 기본 조합 오늘은 기본 조합에 대해서 배워 보겠습니다. 별거 아니라고 인식되기 쉽지만 기본적인 말을 모르면 나중에 여러가지로 피곤해짐으로 차근차근 잘 알아 둡시다 .^^ 오늘 설명한 것은 뚜이쯔와 미엔쯔로 쉽게말해 유효한 패의 조합을 말합니다. 우선 뚜이쯔란 동일한 패가 2개 있는 상태 입니다. 처음에 같은 패가 4개씩 있다고 말씀드렸었죠? 그럼 만약 동일한 패가 4개가 있으면 뚜이쯔가 2개이냐... 하면 그것은 아닙니다. 그건 깡쯔라고 아래에서 설명 드리겠습니다. 어쨌든 뚜이쯔란 동일한 패가 2개 있는 상태를 말합니다. 그리고 미엔쯔란 슌쯔, 커쯔, 깡쯔를 말합니다. 그럼 슌쯔란 무엇이냐? 슌쯔란 같은 수패가 연속적으로 3개를 이룬 상태를 말합니다. 포커같은 경우 A(에이스)만은 K(King)뒤에 와서 스트레이트.. 2009. 1. 24.