반응형

언어 자료구조 알고리즘/C언어 예제 104

스택 - 버퍼 크기 자동 확장, C언어 소스

스택 - 버퍼 크기 자동 확장, C언어 소스 //스택 - 버퍼 크기 자동 확장 #include #include typedef struct Stack //Stack 구조체 정의 { int *buf;//저장소 int ssize;//저장소 크기 int top; //가장 최근에 보관한 인덱스 }Stack; Stack *NewStack();//스택 생성자 void DeleteStack(Stack *stack);//스택 소멸자 int IsFull(Stack *stack); //스택이 꽉 찼는지 확인 int IsEmpty(Stack *stack); //스택이 비었는지 확인 void Push(Stack *stack, int data); //스택에 보관 int Pop(Stack *stack); //스택에서 꺼냄 int ..

스택 - 동적 생성, 소멸, C언어 소스

스택 - 동적 생성, 소멸, C언어 소스 // 스택 - 동적 생성, 소멸 #include #include typedef struct Stack //Stack 구조체 정의{ int *buf;//저장소 int ssize;//저장소 크기 int top; //가장 최근에 보관한 인덱스}Stack; Stack *NewStack(int ssize);//스택 생성자void DeleteStack(Stack *stack);//스택 소멸자int IsFull(Stack *stack); //스택이 꽉 찼는지 확인int IsEmpty(Stack *stack); //스택이 비었는지 확인void Push(Stack *stack, int data); //스택에 보관int Pop(Stack *stack); //스택에서 꺼냄 int m..

스택 - 버퍼를 동적 할당, 정수 형식 보관, C언어 소스

스택 - 버퍼를 동적 할당, 정수 형식 보관, C언어 소스 //스택 - 버퍼를 동적 할당, 정수 형식 보관 #include #include typedef struct Stack //Stack 구조체 정의 { int *buf;//저장소 int ssize;//저장소 크기 int top; //가장 최근에 보관한 인덱스 }Stack; void InitStack(Stack *stack, int ssize);//스택 초기화 int IsFull(Stack *stack); //스택이 꽉 찼는지 확인 int IsEmpty(Stack *stack); //스택이 비었는지 확인 void Push(Stack *stack, int data); //스택에 보관 int Pop(Stack *stack); //스택에서 꺼냄 void D..

스택 - 고정 크기 버퍼, 정수 형식 보관, C언어 소스

스택 - 고정 크기 버퍼, 정수 형식 보관, C언어 소스 //스택 - 고정 크기 버퍼, 정수 형식 보관 #include #include #define STACK_SIZE 10 typedef struct Stack //Stack 구조체 정의 { int buf[STACK_SIZE];//저장소 int top; //가장 최근에 보관한 인덱스 }Stack; void InitStack(Stack *stack);//스택 초기화 int IsFull(Stack *stack); //스택이 꽉 찼는지 확인 int IsEmpty(Stack *stack); //스택이 비었는지 확인 void Push(Stack *stack, int data); //스택에 보관 int Pop(Stack *stack); //스택에서 꺼냄 int m..

원형 연결리스트로 러시안룰렛, C언어 소스

원형 연결리스트로 러시안룰렛, C언어 소스 //원형 연결리스트로 러시안룰렛//주석을 살펴보세요.막코딩입니다.#include #include #include #include typedef struct _Node { int bullet;//총알(1:장전, 0:없음) struct _Node *next;}Node;void Game(); //게임 void MakeRoulette(Node **head, int n); //권총 약실이 n개인 러시안 룰렛 생성void ClearRoulette(Node **head); //러시안 룰렛 지우기int main(){ int key; srand((unsigned)time(0));//랜덤에 사용할 seed값 설정 while (1) { printf("=== 러시안 룰렛 게임 ===..

3X3 퍼즐 게임, C언어 소스

3X3 퍼즐 게임, C언어 소스 #include #include #include #define LEFT 75 #define RIGHT 77 #define UP 72 #define DOWN 80 int get_directionkey()//방향키를 입력받는 함수 { int key; key = _getch(); if (key == 224)//방향키 { return _getch(); //어떤 방향 키인지 반환 } return 0; //방향키가 아님 } void print_puzzle(int puzzle[][3]) { int r, c; system("cls"); //콘솔 화면을 지우기 for (r = 0; r0) { puzzle[row][col] = puzzle[row][col - 1]; puzzle[row][c..

앞 뒤가 똑같은 문장 회문(Palindrome), C언어 소스

앞 뒤가 똑같은 회문(Palindrome), C언어 소스 //회문(Palindrome) //앞 뒤가 똑같은 문을 회문(Palindrome) 이라고 합니다. #include #include #include #include int Palindrome(char str[]); int main() { char test_str[5][100] = { "HannaH",//회문인 예 "ReliefpfeileR",//회문인 예 "Root",//회문이 아닌 예 "RotoR",//회문인 예 "RentneR"//회문인 예 }; int i = 0; for (i = 0; i

반복문으로 차량 번호 알아맞추기, C언어 소스

반복문으로 차량 번호 알아맞추기, C언어 소스 //반복문으로 차량 번호 알아맞추기 /* 문제 차량 번호와 전화번호를 구하는 문제입니다.차량 번호와 전화번호는 4자리 수이며 1에서 9사이의 수입니다. 차량 번호의 첫번째 자리의 수는 마지막 자리의 수보다 2가 큽니다. 차량 번호의 두번째 자리의 수는 세번째 자리의 수보다 큽니다. 차량번호와 전화번호는 순서가 역순입니다. 차량번호와 전화번호의 합은 16456입니다. */ #include int main(void) { int carnum, phonenum; int first, second, third, fourth; for (fourth = 1; fourth

100분의 1초 단위로 현재 시각을 출력, C언어 소스

100분의 1초 단위로 현재 시각을 출력, C언어 소스 time 함수는 초 단위 시각을 구하는 함수 localtime은 초 단위 시각을 date time 시각으로 변환하는 함수 SetConsoleCursorPosition는 콘솔 커서 위치를 설정하는 함수 kbhit는 키를 눌렀는지 확인하는 함수 //100분의 1초 단위로 시각을 출력#pragma warning(disable:4996)//4996경고 메시지 출력 해제#include //clock,time,localtime#include //printf#include //kbhit#include //SetConsoleCursorPostion void print_time(struct tm *now, int tail){ COORD CursorPosition =..

큰 정수 사이의 덧셈, C언어 소스

큰 정수 사이의 덧셈, C언어 소스 질문) 0~10^100 이내의 두 수 사이의 덧셈을 하려면 어떻게 해야 하나요? int 형식으로 표현할 수 있는 범위가 넘는데 어떻게 해야 할 지 난감하네요. 예) 12345678901234567890 20 12345678901234567910 답변)정수를 입력받는다고 하였는데 C언어의 정수 형식의 표현 범위를 벗어나기 때문에 정수 형식의 변수로 입력받는 것이 아닙니다. 먼저 큰 수를 입력받기 위해 char 배열을 사용합니다. 그리고 입력받은 큰 수 두 개의 자리를 맞추기 쉽게 sprintf로 앞자리는 0으로 채웁니다. printf("첫 번째 수:"); scanf_s("%s", buf1, sizeof(buf1)); sprintf_s(numstr1, sizeof(nums..

반응형