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

명품 C언어 프로젝트 7.2.2장 개선과 확장

[1번 문제]/*응용 7.2.2에서는 컴퓨터나 사용자가 1~10 사이의 중복되지 않는 숫자를 생성하거나 입력하도록 되어 있는데,이를 변형하여 상대방이 사용한 숫자는 사용할 수 없도록 제어하여 최초로 50이 넘으면 게임의 승자가 되도록 프로그램을 수정하시오*/#include #include #include #include #include void intro_game(void);void game_control(void);int computer_number(int i, int com_array[]);int user_number(int i, int user_array[]);void number_display(int i, int com_array[], int user_array[], int sum);void co..

명품 C언어 프로젝트 7.2.1장 개선과 확장

[1번 문제]/*응용 7.2.1은 문제 생성에 있어서 난수를 이용하므로 출현빈도가 가장 많은 숫자가 유일하지 않을 수 있습니다.이 부분을 해결하도록 수정하시오*/#include #include #include #include #define MATRIX_SIZE 5#define MAX_NUMBER 5#define TIME_LIMIT 5 void intro_game(void);void game_control(void);void print_number(int n, int cnt[]);int find_num(int cnt[]);void check_result(int user, int answer, int cnt[]); int main(void){ srand((unsigned)time(NULL)); intro_g..

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

[1번 문제]/*다음과 같은 도형을 번호 입력으로 선택하여 회전과 이동이 가능하도록 프로그램을 수정한다*/#include #include #include #include void rotation_right(int m[][3]);void move_shape(int m[][3]);void print_shape(int m[][3]);void move_control(int m[][3]);void gotoxy(int x, int y);void print_direction(void); int x = 35, y = 12;int inx = 0, iny = 0; int main(void){ int shape1[3][3] = { 1, 0, 0, 1, 0, 0, 1, 1, 0 }; int shape2[3][3] = { 1,..

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

[1번 문제]/*예제 6.1.2를 응용하여 화살표키로 사각형의 크기를 조절하는 프로그램을 작성하시오*/#include #include #include #include #define X_MAX 40#define Y_MAX 20 void draw_rectangle(int c, int r){ int i, j; unsigned char a = 0xa6; unsigned char b[7]; for (i = 1; i < 7; i++) b[i] = 0xa0 + i; printf("%c%c", a, b[3]); for (i = 0; i < c; i++) printf("%c%c", a, b[1]); printf("%c%c", a, b[4]); printf("\n"); for (i = 0; i < r; i++) { pri..

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

[1번 문제]/*더 정교한 모양으로 디지털 숫자를 표현할 수 있도록 배열을 수정하라*/#include void number_check(int k, int i);void digit_print(int dim[], int line); int zero[20] = { 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1 };int one[20] = { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 };int two[20] = { 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1 };int three[20] = { 1, 1, 1, 1, 0, 0, 0,..

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

[1번 문제]/*예제 5.3.1을 응용하여 다음과 같은 두더지 잡기 게임 프로그램을 작성한다.두더지 대신 아래의 그림과 같이 영문자를 표시하여 제한 시간 내에 정확한 키를 입력했을 경우에만 맞는 것으로 처리합니다*/#include #include #include #include #include #include void draw_check02(int c, int r){ int i, j; unsigned char a = 0xa6; unsigned char b[12]; for (i = 1; i < 12; i++) b[i] = 0xa0 + i; printf("%c%c", a, b[3]); for (i = 0; i < c - 1; i++) { printf("%c%c", a, b[1]); printf("%c%c",..

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

[1번 문제]/*입력된 정수를 long형 변수 num에 저장하고, 저장된 숫자의 역순 값을 long형 변수 rev에 저장하여 출력하는 프로그램을 작성한다.예를 들어 정수 1234가 입력되었다면 변수 rev에는 정수 4321이 저장되도록 한다*/#include #include long reverse(long num){ long rev=0; int length = 0; length = (int)(log10(num) + 1); for (int i = length; i >= 1; i--) { rev += num % 10 * pow(10, i - 1); num /= 10; //printf("%ld\n", rev); } return rev;} int main(void){ long num; printf("뒤집고 싶은..

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

[1번 문제]/*[예제 5.3.1]을 응용하여 영문 대소문자와 더불어 숫자나 특수 키에 대해 자판을 연습할 수 있는 프로그램을 작성한다*/#include #include #include #include #include #include void intro_game(void);void keyboard_practice(void);void display_keyboard(void);void practice_result(char output[], char input[], char check[], int total);void gotoxy(int x, int y); int main(void){ intro_game(); keyboard_practice(); return 0;} void intro_game(void){ p..

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

[1번 문제]/*상하좌우의 화살표 키를 이용하여 임의의 크기를 갖는 정사각형을 연속적으로 이동시키는 프로그램을 작성한다*/#include #include #include #include void draw_square_xy(int size, int x, int y);void gotoxy(int x, int y);void move_arrow_key(char key, int *x1, int *y1, int x_b, int y_b); int main(void){ int move = 1, x=1, y = 1, size, key; printf("사각형을 상하좌우로 움직이는 animation\n"); printf("실행 중에 아무키나 누르면 종료\n"); printf("사각형의 크기를 입력하고 Enter(최대 20)..

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

[1번 문제]/*[함수 5.1.3]을 이용하여 카드를 섞은 다음, 네 명의 사람에게 순서대로 7장씩의 카드를 나누어주고 받은 카드들을 출력하는 프로그램을 작성한다*/#include #include #include #include typedef struct{ int order; char shape[3]; int number;}trump; void make_card(trump m_card[]);void display_card(trump m_card[]);void shuffle_card(trump m_card[]); int main(void){ trump A[7], B[7], C[7], D[7]; //4명의 사람 trump card[52]; make_card(card); shuffle_card(card); f..