C/명품 C언어 프로젝트(안기수 저) 59

명품 C언어 프로젝트 3.4장 연습문제

[1번 문제]/*화면에 출력된 문장에 대해 색상번호를 입력하면 문장의 색상이 변화하는 함수 color_text를 작성하시오*/#include #include void text_color(char attr){ char dos_command[9]; sprintf(dos_command, "color 0%c", attr); //문장만 바꾼다, 0은 검은색 system("cls"); system(dos_command);} void intro_color_set(void){ printf("텍스트 색상변경\n\n"); printf("0:검정색, 1.파랑색, 2.초록색\n"); printf("3.옥색, 4.빨강색, 5:자주색\n"); printf("6.노란색, 7.흰색 8.회색\n"); printf("9.연한 파랑색, ..

명품 C언어 프로젝트 3.3장 연습문제

[1번 문제]/*[예제 3.3.2]에 대해 화면 좌표상의 점을 구조체(struct)로 정의하여 표현하도록 프로그램을 수정하시오*/#include #include void gotoxy(int x, int y);void axis(void);void draw_xy_line02(int a, int b); typedef struct{ int xpos; int ypos;}Point; int main(void){ int a, b; printf("y=ax+b의 직선 식을 좌표에 출력\n"); printf("기울기 입력>"); scanf("%d", &a); printf("절편 입력>"); scanf("%d", &b); system("cls"); axis(); draw_xy_line02(a, b); gotoxy(1, 23..

명품 C언어 프로젝트 3.2장 연습문제

[1번 문제]/*화살표 키를 눌러 숫자를 증가시키거나 감소시키는 프로그램을 작성하시오.기본 숫자 1000에 대해 위쪽 방향 화살표 키를 입력하면 숫자를 증가시키고,아래쪽 방향 화살표 키를 입력하면 숫자를 감소하게 합니다.왼쪽 방향 화살표 키와 오른쪽 방향 화살표 키는 감소하거나 증가시킬 단위를 조절하도록 합니다*/#include #include #include #define X_MAX 79#define Y_MAX 24 void gotoxy(int x, int y);void move_arrow_key(char key, int *num, int *unit); int main(void){ char key; int num = 100; int unit = 1; do { gotoxy(20, 10); printf("..

명품 C언어 프로젝트 3.1장 연습문제

[1번 문제]/*커서 제어 함수인 gotoxy를 이용하여 화면의 중앙부분에 다음 그림과 같은 모양으로 출력하는 프로그램을 작성하시오*/#include #include #include #include void gotoxy(int x, int y); int main(void){ for (int i = 0; i < 5; i++) { gotoxy(40 - 2 * i, 2 + 2 * i); for (int j = 0; j < 2 * (i + 1) - 1; j++) { printf("* "); } } printf("\n"); printf("다음 화면으로 넘기려면 아무키나 누르시오\n"); getch(); system("cls"); for (int i = 0; i < 5; i++) { gotoxy(20, (2 * i..

명품 C언어 프로젝트 2.3장 연습문제

[문제 1]/*[예제 2.3.2]를 참고하여 현재의 연도와 월을 반환하는 int 형 함수 year와 month를 작성하시오*/#include #include int year(struct tm *d){ return d->tm_year + 1900;} int month(struct tm *d){ return d->tm_mon + 1;} int main(void){ time_t curr; struct tm *d; curr = time(NULL); d = localtime(&curr); printf("현재의 연도:%d\n", year(d)); printf("현재의 월:%d\n", month(d)); return 0; } [문제 2]/*[예제 2.3.2]를 참고하여 현재의 시간과 분을 반환하는 int형 함수 ho..

[C언어] 시간과 날짜와 관련된 함수들

아래 함수들은 헤더파일 를 필요 시간 계산 time_t time(time_t *timeptr); 1970년 1월 1일 자정부터 경과된 현재 시간을 초단위로 계산 시간을 문자열로 변환 char *asctime(struct tm *time); 구조체 tm 형식의 시간을 문자열로 변환 char *ctime(time_t *time); 함수 time으로부터 계산된 현재 시간을 문자열로 변환 시간을 구조체로 변환 struct tm *localtime(time_t *time); 지역시간(local time)을 구조체 tm의 형식으로 가져오는 함수 struct tm *gmtime(time_t *time); Greenwich Mean Time(GMT)을 구조체 tm 형식으로 가져옴 시간 차이 계산 clock_t cloc..

명품 C언어 프로젝트 2.2장 연습문제

[1번 문제]/*자신이 사용하는 컴파일러에서 소수 이하 몇 자리까지 유효한지를 확인하시오*/#include int main(void){ double num = 0.111111111111111111111111111111111111111111111111111111111111111111111; //소수를 길게 선언한다 printf("소수 출력 결과:%.16lf\n", num);//16자리까지 유효하다 printf("소수 출력 결과:%.17lf\n", num);//17번째부터 다른 숫자가 출력 return 0;} [2번 문제]간지 1 2 3 4 5 6 7 8 9 10 11 12 10간 신 임 계 갑 을 병 정 무 기 경 12지 자 축 인 묘 진 사 오 미 신 유 술 해 띠 쥐 소 호랑이 토끼 용 뱀 말 양 원숭..

명품 C언어 프로젝트 2.1장 연습문제

[1번 문제]/*임의의 영문 문자열에 대해 소문자는 대문자로, 대문자는 소문자로 동시에 변환하는 함수를 작성하시오*/#include #include //toupper, tolower#include void change(char str[]); int main(void){ char string[20]; printf("문자열 입력:"); scanf("%s", string); printf("문자열 변환:"); change(string); printf("바뀐 문자열:%s\n", string); return 0;} void change(char str[]){ int i; int length = strlen(str); for (i = 0; i = 65 && str[..

명품 C언어 프로젝트 1장 연습문제

[1번 문제]/*입력한 문자가 한글인지 영문이지를 구분하는 프로그램을 작성하시오*/#include #include int main(void){ unsigned char word[100]; //앞에 unsigned를 꼭 붙여야합니다! printf("문자를 입력해주세요:"); scanf("%s", word); for (int i = 0; word[i] != NULL; i++) //문자열의 끝은 NULL입니다 { if (word[i] >= 65 && word[i] = 97 && word[i] = 176 && word[i]