반응형

C언어/C언어 예제 235

디지털 시계 만들기

디지털 시계 만들기 동영상 강의 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);//표준 입력 버..

[C언어 소스] 문자열의 첫 번째 문자 제거

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

학생 성적 관리 프로그램(학생 수 입력, 학생 동적 메모리 할당, 파일 입출력) [C언어 소스]

학생 성적 관리 프로그램 #pragma warning(disable:4996) #include #include #include #define MAX_NAME_LEN 20 enum Subject { KOREAN, ENGLISH, MATH, MAX_SUBJECT }; const char *stitle[MAX_SUBJECT] = { "국어","영어","수학" }; typedef struct _Student Student; struct _Student { int num; char name[MAX_NAME_LEN]; int scores[MAX_SUBJECT]; }; #define DEF_FNAME "data.stu" int max_student; Student **stues; void Init(); void Ru..

학생 성적 관리 프로그램 (학생 동적 메모리 할당, 파일 입출력) [C언어 소스]

학생 성적 관리 프로그램 #pragma warning(disable:4996) #include #include #define MAX_NAME_LEN 20 enum Subject { KOREAN, ENGLISH, MATH, MAX_SUBJECT }; const char *stitle[MAX_SUBJECT] = { "국어","영어","수학" }; typedef struct _Student Student; struct _Student { int num; char name[MAX_NAME_LEN]; int scores[MAX_SUBJECT]; }; #define DEF_FNAME "data.stu" #define MAX_STUDENT 50 Student *stues[MAX_STUDENT]; void Init()..

반응형