본문 바로가기

프로그래밍/c/c++

[C] 쉽게 풀어쓴 C EXPRESS 제 6장 Programming 문제 풀이

반응형




1. 키보드에서 하나의 문자를 읽어서 모음과 자음을 구분하는 프로그램을 작성하여 보자. 단, switch 문을 사용한다.


[CODE]


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
#include <stdio.h>
 
int main(void)
{
    char ch;
 
    printf("문자를 입력하시오: ");
    scanf("%c"&ch);
 
    switch (ch)
    {
    case 'a':
        printf("모음입니다.\n");
        break;
    case 'e':
        printf("모음입니다.\n");
        break;
    case 'o':
        printf("모음입니다.\n");
        break;
    case 'u':
        printf("모음입니다.\n");
        break;
    case 'i':
        printf("모음입니다.\n");
        break;
    default:
        printf("자음입니다.\n");
    }
 
    return 0;
}
cs


[OUTPUT]





2. 사용자로부터 2개의 정수를 받아서 첫 번째 정수가 두 번째 정수로 나누어 떨어지는 지를 검사하는 프로그램을 작성하라. 즉 약수인지를 검사한다.


[CODE]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main(void)
{
    int x, y;
 
    printf("정수를 입력하시오: ");
    scanf("%d"&x);
    printf("정수를 입력하시오: ");
    scanf("%d"&y);
 
    if (x%y == 0)
        printf("약수입니다.\n");
    else
        printf("약수가 아닙니다.\n");
 
    return 0;
}
cs


[OUTPUT]





3. 사용자로부터 3개의 정수를 읽어 들인 후에 if-else 문을 사용하여 가장 작은 값을 결정하는 프로그램을 작성하라.


[CODE]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
 
int main(void)
{
    int x, y, z, min;
 
    printf("3개의 정수를 입력하시오: ");
    scanf("%d %d %d"&x, &y, &z);
 
    if (x > y)
        if (y > z)
            min = z;
        else
            min = y;
    else
        if (x > z)
            min = z;
        else
            min = x;
 
    printf("제일 작은 정수는 %d 입니다.\n", min);
 
    return 0;
}
cs


[OUTPUT]





4. 컴퓨터와 가위, 바위, 보 게임을 하는 프로그램을 작성하라. 컴퓨터는 사용자에게 알리지 않고 가위, 바위, 보 중에서 임의로 하나를 선택한다. 사용자는 프로그램의 입력 안내 메시지에 따라서, 3개 중에서 하나를 선택하게 된다. 사용자의 선택이 끝나면 컴퓨터는 누가가 무엇을 선택하였고 누가 이겼는지, 비겼는지를 알려준다.


[CODE]


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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
//가위바위보는 랜덤함수를 사용합니다.
//책 p312 "난수함수"파트 읽어보시면 됩니다.
 
int main(void)
{
    int user, com;
 
    printf("선택하시오(1: 가위 2: 바위 3: 보) : ");
    scanf("%d"&user);
 
    srand((unsigned)time(NULL));
    com = rand() % 3 + 1;
 
    if (user == 1)
        if (com == 1)
            printf("비겼습니다.\n");
        else if (com == 2)
            printf("졌습니다.\n");
        else if (com == 3)
            printf("이겼습니다\n");
 
    if (user == 2)
        if (com == 1)
            printf("이겼습니다.\n");
        else if (com == 2)
            printf("비겼습니다.\n");
        else if (com == 3)
            printf("졌습니다\n");
 
    if (user == 3)
        if (com == 1)
            printf("졌습니다.\n");
        else if (com == 2)
            printf("이겼습니다.\n");
        else if (com == 3)
            printf("비겼습니다\n");
 
        return 0;
}
cs


[OUTPUT]





5. 놀이 공원에서 롤러코스터에 타려면 키가 140츠 이상이고 나이가 10살 이상이어야 한다고 가정하자. 사용자에게 키와 나이를 질문한 후에 "타도 좋습니다" 또는 "죄송합니다" 를 출력하는 프로그램을 작성하여 보자.


[CODE]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main(void)
{
    int h, age;
     
    printf("키를 입력하시오(cm): ");
    scanf("%d"&h);
 
    printf("나이를 입력하시오: ");
    scanf("%d"&age);
 
    if (h >= 140 && age >= 10)
        printf("타도 좋습니다.\n");
    else
        printf("죄송합니다.\n");
 
    return 0;
}
cs


[OUTPUT]





6. 사용자로부터 몇 월인지를 정수로 입력받아서 Jan와 같은 영어단어로 출력하는 프로그램을 작성하라.


[CODE]


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
#include <stdio.h>
 
int main(void)
{
    int month;
 
    printf("월번호를 입력하시오(1-12): ");
    scanf("%d"&month);
 
    switch (month)
    {
    case 1:
        printf("Jan\n");
        break;
    case 2:
        printf("Feb\n");
        break;
    case 3:
        printf("Mar\n");
        break;
    case 4:
        printf("Apr\n");
        break;
    case 5:
        printf("May\n");
        break;
    case 6:
        printf("Jun\n");
        break;
    case 7:
        printf("Jul\n");
        break;
    case 8:
        printf("Aug\n");
        break;
    case 9:
        printf("Sep\n");
        break;
    case 10:
        printf("Oct\n");
        break;
    case 11:
        printf("Nov\n");
        break;
    case 12:
        printf("Dec\n");
        break;
    default:
        printf("1부터 12사이의 숫자만 입력해주세요!\n");
        break;
    }
 
    return 0;
}
cs


[OUTPUT]





7. 사용자로부터 키를 입력받아서 표준 체중을 계산한 후에 사용자의 체중과 비료하여 저체중인지, 표준인지, 과체중인지를 판단하는 프로그램을 작성하라. 표준 체중 계산식은 다음을 사용하라.


표준 체중 =  (키-100) * 0.9


[CODE]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main(void)
{
    float h, kg,standard;
 
    printf("체중과 키를 입력하시오(키, 체중): ");
    scanf("%f %f"&h, &kg);
 
    standard = (h - 100)*0.9;
 
    if (kg > standard)
        printf("과체중입니다.\n");
    else
        if (kg<standard)
            printf("저체중입니다.\n");
        else
            printf("표준체중입니다.\n");
    return 0;
}
cs


[OUTPUT]





8. 놀이 공원의 자유이용권의 가격을 계산하는 프로그램을 작성하여 보자. 입장료는 다음과 같은 조건으로 결정된다. 현재 시간과 사용자의 나이를 입력받아서 지불하여야 하는 요금을 화면에 출력한다.


 구분

대인 

소인(3~12세/65세이상) 

 자유이용권(오후 5시 이전)

34,000 

 25,000

야간이용권(오후 5시 이후) 

10,000 


[CODE]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
int main(void)
{
    int time, age;
 
    printf("현재 시간과 나이를 입력하시오(시간, 나이): ");
    scanf("%d %d"&time, &age);
 
    if (3 <= age <= 12 || age >= 65)
        if (time < 15)
            printf("요금은 25000원입니다.\n");
        else
            printf("요금은 10000원입니다.\n");
    else
        if (time < 15)
            printf("요금은 34000원입니다.\n");
        else
            printf("요금은 10000원입니다.\n");
 
    return 0;
}
cs


[OUTPUT]





9. 다음과 같이 정의되는 함수의 함수값을 계산하여 보자. 사용자로부터 x값을 입력받아서 함수값을 계산하여 화면에 출력한다. x는 실수이다.


[CODE]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main(void)
{
    float x, fx = 0;
 
    printf("x의 값을 입력하시오: ");
    scanf("%f"&x);
 
    if (x <= 0)
        fx = x*x*x*-9 * x + 2;
    else
        fx = 7 * x + 2;
 
    printf("f(x)의 값은 %f\n", fx);
 
    return 0;
}
cs


[OUTPUT]





10. (x, y) 좌표를 입력받아서 좌표가 속하는 사분면을 화면에 출력하는 프로그램을 작성하라.


[CODE]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main(void)
{
    int x, y;
 
    printf("좌표(x, y): ");
    scanf("%d %d"&x, &y);
 
    if (x > 0 && y > 0)
        printf("1사분면\n");
    else     if (x < 0 && y > 0)
        printf("2사분면\n");
    else    if (x < 0 && y < 0)
        printf("3사분면\n");
    else    if (x > 0 && y < 0)
        printf("4사분면\n");
 
    return 0;
}
cs


[OUTPUT]





11. 사용자로부터 하나의 문자를 입력받아서 문자가 'R이면 "Rectangle"이라고 출력한다.

 'T'이면 "Triangle", 'C'이면 "Circle"이라고 출력하는 프로그램을 작성한다. 그 외의 문자가 들어오면 "Unknown"이라고 출력한다.


[CODE]


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
#include <stdio.h>
 
int main(void)
{
    char ch;
 
    printf("문자를 입력하시오: ");
    scanf("%c"&ch);
 
    switch (ch)
    {
    case 'R':
        printf("Rectangle\n");
        break;
    case 'T':
        printf("Triangle\n");
        break;
    case 'C':
        printf("Circle\n");
        break;
    default:
        printf("Unknown\n");
        break;
    }
    return 0;
}
cs


[OUTPUT]





반응형