C 언어: 수학+_000002
C언어: 수학연산 000002
/// 연산
1 큰 수, 1 작은 수, 0 이해하기(0 ~ 9)
/// 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX_Q 10 // 최대 질문 개수 #define CONVERSATION 1 #define CLOSING 0 static unsigned int random_num = 0; static unsigned int gt_or_lt = 0; static unsigned int ans = 0; static char input = 'c'; void func_question(void); void func_answer(void); void func_result(void); int main(void) { int question = 0; int status = 0; int rt_int; do { printf("대화(1) | 종료(1 이외의 수): "); rt_int = scanf("%d", &status); if (getchar() != '\n') { // for scanf() status = 1aaa, aaa ... while (getchar() != '\n'); status = CLOSING; } if (status == CONVERSATION) { func_question(); func_answer(); func_result(); } else { printf("대화를 종료하겠습니다. 만나서 즐거웠습니다.\n"); exit(EXIT_FAILURE); } question++; } while(question < MAX_Q); printf("귀한 시간 내 주셔서 감사합니다.\n"); return 0; } void func_question(void) { time_t time_now; unsigned int random_seed; time(&time_now); random_seed = ((unsigned int)time_now + random_num); srand(random_seed); // 0:큰 수, 1:작은 수 gt_or_lt = (rand() & 1); if (gt_or_lt == 0) { do { // 0 ~ 8 숫자만들기 random_num = rand() % 10; // 0 ~ 9 } while (random_num == 9); } else { do { // 1 ~ 9 숫자만들기 random_num = rand() % 10; // 0 ~ 9 } while (random_num == 0); } printf("질문: %d 보다 1 ", random_num); if (gt_or_lt == 0) { puts("큰 수는 무엇입니까?\n"); } else { puts("작은 수는 무엇입니까?\n"); } } void func_answer(void) { int rt_int; printf("대답: "); rt_int = scanf("%u", &ans); if (getchar() != '\n') { // for scanf() ans = 1aaa, aaa ... while (getchar() != '\n'); input = 'w'; } } void func_result(void) { if (input != 'w') { if (gt_or_lt == 0) { if (ans == (random_num + 1)) printf("입력하신 수 %d(은/는) %d 보다 1 큰 수가 맞습니다.\n", ans, random_num); else printf("입력하신 수 %d(은/는) %d 보다 1 큰 수가 아닙니다.\n", ans, random_num); } else { if (ans == (random_num - 1)) printf("입력하신 수 %d(은/는) %d 보다 1 작은 수가 맞습니다.\n", ans, random_num); else printf("입력하신 수 %d(은/는) %d 보다 1 작은 수가 아닙니다.\n", ans, random_num); } } else { puts("잘못 입력하셨습니다."); } input = 'c'; puts(""); } | cs |
* 실행환경: Linux(5.7.6-x86_64-linode136)
* 컴파일러: gcc (Ubuntu 6.5.0-2ubuntu1~14.04.1) 6.5.0 20181026
- 당신을 응원합니다. -
댓글
댓글 쓰기