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


- 당신을 응원합니다. -

댓글

이 블로그의 인기 게시물

파이썬[Python]: 내장함수 - from_bytes 메서드

파이썬[Python]: 내장함수 - __len__ 메서드

파이썬[Python]: kivy - 한글 사용

C 언어: sin 함수, cos 함수, tan 함수

파이썬[Python]: 내장함수 - bit_length 메서드