본문 바로가기

프로그래밍 언어들/C

임의의 난수를 생성하는 동시에 배열에 정렬 #include #include #define MAX10 int main( void){int arry[ MAX] = {0, };int cnt = 0, fn = 0;int key = 0, temp = 0; srand( ( unsigned)time( 0)); printf("program start\n");printf("before sorting > "); for( cnt = 0 ; cnt = 0 ; fn --){if( arry[ fn] > arry[ cnt]){key = fn;}} temp = arry[ cnt]; for( .. 더보기
두 개의 쓰레드를 활용한 병합정렬(merge sorting) #include #include #include #include #include #include #define CHECK_END -1 static int *array = NULL;static pthread_t tid[2]; static void div_array(int *, int, int, unsigned int);static void merge_sort(int *, unsigned int); void *left_sort(void *size){int s = *((int *)size);int middle = s/2; div_array(array, 0, middle, (unsigned int)tid[0]);} void *right_sort(void *size){int s = *((int *)size);in.. 더보기
단일 쓰레드 병합 정렬(Merge sorting) #include #include #include #include #include #define CHECK_END -1 static int *array = NULL; static void div_array(int *, int, int);static void merge_sort(int *); static void init_array(int size){int count = 0; array = (int*)malloc(sizeof(int) * size); for(count = 0 ; count < size ; count ++){array[count] = rand()%size + 1;}} static void display_array(int size){int count = 0; for(count = 0 ; coun.. 더보기
20141127_C언어 하트 피하기 게임 #include #include #include #include #include #define MAP_X 30 // 맵의 가로#define MAP_Y 22 // 맵의 세로 #define HEART MAP_X-1 // 최대 하트의 갯수 #define LEFT 75 // 왼쪽#define RIGHT 77 // 오른쪽 #define DEAD 0 // 죽었을 경우#define CLEAR 1 // 클리어 했을 경우 void endGame(int); // 게임이 끝났을 경우void init_field(void); // 기본 맵의 테두리 출력void init_game(void); // 게임을 초기화한다void start_game(void); // 게임을 시작한다void print_heart(void); // 화면에 .. 더보기
20141124_단일 연결리스트(singly linked list)_노드 삭제 함수(delNode) 이번에는 단일 연결리스트(singly linked list)의 노드 삭제 함수(delNode)입니다. 노드 추가 및 기본적인 소스는 다른 글에 있으니 참고 하시기 바랍니다. ^^ void delNode(NODE **head){NODE *pri = *head;NODE *temp = pri->next; // 현재 노드가 없을 경우if(pri == NULL)return; // 현재 노드가 한 개일 경우if(pri->next == NULL){*head = NULL;free(pri);}else // 노드가 2개 이상일 경우{while(temp->next != NULL){pri = temp;temp = temp->next;}pri->next = NULL;free(temp);}} int main(void){// 리스.. 더보기
20141123_C언어 오목게임 C언어로 구현한 오목 게임입니다. 아래 소스코드는 컴퓨터와의 대전이 아니라 2인 플레이로 진행됩니다. 약간의 인공지능을 넣은 컴퓨터와의 대전을 구현한 오목은 첨부파일에 있습니다. #include #include #define LEFT 75#define RIGHT 77#define UP 72#define DOWN 80#define SPACE 32#define MAP_X 39#define MAP_Y 24#define ESC 27#define U1 1#define U2 2typedef struct XY{int x;int y;}xy;gotoxy(int x, int y){COORD pos = {x, y};SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos.. 더보기
20141123_단일 연결리스트(singly linked list)_노드 추가 함수(addNode) C언어로 구현한 단일 연결리스트(singly linked list)의 한 부분입니다.리스트의 맨 뒤에 새로 생성한 노드를 추가하는 addNode 함수로전역 변수를 사용하지 않고 이중 포인터를 사용해 구현했습니다. #include #include typedef struct node{int data;struct node* next;}NODE; /*전달받은 데이터를 저장하는 하나의 노드를 생성하는 함수*/NODE* createNode(int data){// 동적할당으로 노드를 생성해준다.NODE *temp = (NODE*)malloc(sizeof(NODE)); // 해당 노드가 가르키는 다음 노드의 주소 초기화temp->next = NULL; // 전달 받은 데이터를 저장temp->data = data; re.. 더보기