반응형

C언어/C언어 예제 228

3X3 퍼즐 게임 소스 코드

다음의 내용을 다루고 있어요. 1. _getch 함수를 이용하여 방향 키 입력받기 2. 정해 진 값을 랜덤하게 고르기 3. 3X3 게임 알고리즘 소스 코드 /* https://ehpub.co.kr 언제나 C언어 예제 Center 3X3 퍼즐 만들기 */ #include #include #include #include #define LEFT 75 #define RIGHT 77 #define UP 72 #define DOWN 80 #define SWAP(x,y) {int temp=x; x=y; y=temp;} typedef struct Puzzle { char base[3][3]; int row; int col; }Puzzle; void print_puzzle(Puzzle* puzzle) { int r, c..

디지털 시계 만들기

디지털 시계 만들기 동영상 강의 C언어 학습할 때 콘솔 응용만 매 번 만들어서 지루할 수 있죠. 특별히 무엇인가를 전달하기 위한 목적보다 지루함을 덜기 위해 "그냥" 만드는 디지털 시계 만들기 실습입니다. 현재 초 단위 시간을 얻어오는 time(0) 함수와 초 단위 시간을 지역 시각으로 변환해 주는 localtime_s 함수를 이용합니다. 콘솔 응용에서 커서 위치를 이동시키는 SetConsoleCursorPosition 함수는 Win32 API 함수를 이용합니다. 키보드를 눌렀는지 체크하는 부분은 _kbhit 함수를 이용합니다. #include #include #include #include char* digits[10][5][4] =//0~9까지 출력할 정보 { { { "■","■","■","■" },..

float 4바이트 실수 형식 메모리에 표현 방식을 확인할 수 있는 C 소스 코드 작성하기

4바이트 실수를 메모리에 표현하는 방식에 관한 강의 동영상 #include //union은 내부 멤버 중에 제일 큰 멤버 크기의 메모리를 할당합니다. typedef union { float value; //4바이트 struct { unsigned exponent : 23; //23비트 unsigned mantissa : 8; //8비트 unsigned sign : 1; //1비트 }sv; //4바이트 unsigned iv;//4바이트 }test; int main(void) { printf("%.20f\n", 0.1 + 0.2); //실수 형식은 10진수 체계로 메모리에 표현하지 않음을 확인 test t; t.value = -13.625; printf("부호부:%u\n", t.sv.sign); //%u는 ..

[C언어 소스] 순차 정렬 알고리즘 시뮬레이션(정렬 과정 시각화)

소스 코드 //http://ehpub.co.kr //[언제나 C언어] 순차 정렬(Sequential Sort) [예제 Center] #pragma warning(disable:4996) #include #include #include #define LENGTH(arr) (sizeof(arr)/sizeof(arr[0])) #define SWAP(i, j) {int t; t=i; i=j; j=t;} #include //Sleep enum Color { LACK, BLUE, GREEN, JADE, RED, PURPLE, YELLOW, WHITE, GRAY, LIGHT_BLUE, LIGHT_GREEN, LIGHT_JADE, LIGHT_RED, LIGHT_PURPLE, LIGHT_YELLOW, LIGHT_WHIT..

10진수를 2진수로 변환, 1의 개수 구하기, 반복문, 나누기, 나머지 연산 사용 불가

소스 코드 #include int BinaryCounter(int num,int count) { int half_num = num >> 1; int isone = 0; if (num == 0) { return count; } isone = (num != (half_num + half_num)); if (isone) { count++; } count = BinaryCounter(half_num,count); printf("%d", isone); return count; } void TestBinaryCounter(int num) { int count = 0; printf("=== Test number: %d \n", num); count = BinaryCounter(num, 0); printf("\n이진수..

[C언어 소스] 문자열의 뒤쪽 공백 문자를 제거

[C언어 소스] 문자열의 뒤쪽 공백 문자를 제거 //문자열의 뒤쪽 공백 문자를 제거#pragma warning(disable:4996)#include void RemoveEndSpaces(char *buf);int main(){ char buf[256] = ""; int i = 0; printf("문자열 입력:"); scanf("%[^\n]", buf);//개행 문자 입력까지 문자열을 입력받습니다.(공백 포함) while (buf[i])//buf[i]가 참(널문자가 아님)이면 반복하여라. { i++; } //현재 i는 널문자가 있는 위치이므로 1 감소 i--; while (buf[i]==' ')//공백 문자이면 { buf[i] = '\0';//널 문자로 변경 i--; } printf("끝에 공백 문자 제..

[C언어 소스] 문자열의 앞쪽 공백 문자를 제거

[C언어 소스] 문자열의 앞쪽 공백 문자를 제거 //문자열의 앞쪽 공백 문자를 제거#pragma warning(disable:4996)#include void RemoveFrontSpaces(char *buf);int main(){ char buf[256] = ""; int i = 0; int i2 = 0; printf("문자열 입력:"); scanf("%[^\n]", buf);//개행 문자 입력까지 문자열을 입력받습니다.(공백 포함) while (buf[i] == ' ')//공백 문자이면 { i++; } while (buf[i])//buf[i]에 문자가 참(널문자가 아님)이면 반복 { buf[i2] = buf[i]; i2++, i++; } buf[i2] = '\0'; printf("앞에 공백 문자 제거..

[C언어 소스] 문자열의 마지막 문자 제거

[C언어 소스] 문자열의 마지막 문자 제거 //문자열의 마지막 문자 제거#pragma warning(disable:4996)#include void RemoveEnd(char *buf);int main(){ char buf[256] = ""; int i = 0; printf("문자열 입력:"); scanf("%[^\n]", buf);//개행 문자 입력까지 문자열을 입력받습니다.(공백 포함) while(buf[i])//buf[i]가 참(널문자가 아님)이면 반복하여라. { i++; } //현재 i는 널문자가 있는 위치, i-1은 마지막 문자 위치 buf[i - 1] = '\0'; printf("마지막 문자를 제거:[%s]\n", buf); //함수 호출을 이용한 예 rewind(stdin);//표준 입력 버..

반응형