for문으로 1부터 입력한 숫자까지 반복하고, 숫자가 3, 6, 9일 경우 영문자 X를 출력하고, 아닐 경우 숫자를 출력하면 된다. 

입력 값이 10보다 작은 정수이고, X로 출력할 값은 3, 6, 9이므로 모두 3의 배수이다. 

3의 배수는 3으로 나눴을 때 나머지가 0인 숫자이므로, 나머지를 구하는 연산자인 % 연산자를 사용한다.

정답은 다음 코드와 같다.

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()
{
    int n;    // 입력받을 변수
    scanf("%d"&n);    // 입력
    for(int i = 1; i <= n; i++)        // 입력한 숫자보다 작거나 같을 때까지 반복
    {
        if(i % 3 == 0)    // i가 3의 배수면(3,6,9)
        {
            printf("X ");    // X출력
        }
        else    // 3의 배수가 아니면
        {
            printf("%d ", i);    // 숫자 출력
        }
    }
    return 0;
    
}
cs

 

첫번째 주사위가 1일경우 두번째 주사위의 숫자, 2일 경우 두번째 주사위의 숫자... 와 같은 방식을 출력하므로 2중 for문을 이용하여 바깥쪽 반복문에서는 첫 번째 주사위의 숫자를 출력하고, 안쪽 반복문에서 두 번째 주사위의 숫자를 출력하면 될 것 같다. 

반복문은 1부터 각 주사위의 면의 수로 입력한 숫자까지 반복하도록 한다.

정답은 다음 코드와 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main()
{
    int n, m;    // 입력 받을 변수
    scanf("%d %d"&n, &m);        // 입력
    for(int i = 1; i <= n; i++)    // 첫번째 주사위, 1부터 입력받은 숫자보다 작거나 같을때까지 반복
    {
        for(int j = 1; j <= m; j++)    // 두번째 주사위, 1부터 입력받은 숫자보다 작거나 같을 때 까지 반복
            printf("%d %d\n", i, j);    // 첫번째 주사위 숫자 두번째 주사위 숫자의 형태로 
    }
    return 0;
}
cs

 

문자 한 개가 입력되는데, 몇 번 입력되는지는 모르기 때문에 무한 루프 반복문을 사용할 것이다.

while반복문으로 무한루프를 만들고, 무한 루프 안에서 문자를 입력받는다.

입력받은 문자를 바로 출력하고, if문을 이용하여 입력받은 문자가 q인지 확인한다. 입력받은 문자가 q라면 break를 사용하여 무한루프를 탈출한다.

이 문제도 문자를 입력받고 출력하므로 %c 서식문자를 사용한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
int main()
{
    char c;     // 입력받을 값
    while(1)    // 무한루프
    {
        scanf("%c"&c);    // 값 입력
        printf("%c", c);    // 출력
        if(c == 'q')        // 입력받은 문자가 q라면
            break;          // 반복문 종료
    }
    return 0;
}
cs

 

+ Recent posts