티스토리 뷰

C, C++

[ C언어 ] 10. 다중 반복문

RiKang 2017.11.22 12:00

Table of Contents


개요

C언어 구구단

C언어 별찍기

다중 반복문 문제




1. 개요


 다중 반복문은 말 그대로, 반복문을 중첩 하여 사용하는 것을 말합니다. 아래의 이중 반복문 프로그램을 돌려보면 for 안에 for도 잘 돌아감을 알 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
//code by RiKang, weeklyps.com
#include <stdio.h>
 
int main(void) {
    for(int i=1; i<=5; i++){
        for(int j=1; j<=5; j++){
            printf("[i=%d,j=%d] ",i,j);
        }
        printf("\n");
    }
    return 0;
}
cs


[i=1,j=1] [i=1,j=2] [i=1,j=3] [i=1,j=4] [i=1,j=5] 
[i=2,j=1] [i=2,j=2] [i=2,j=3] [i=2,j=4] [i=2,j=5] 
[i=3,j=1] [i=3,j=2] [i=3,j=3] [i=3,j=4] [i=3,j=5] 
[i=4,j=1] [i=4,j=2] [i=4,j=3] [i=4,j=4] [i=4,j=5] 
[i=5,j=1] [i=5,j=2] [i=5,j=3] [i=5,j=4] [i=5,j=5] 


 출력된 결과를 보면 알 수 있듯이, i 에 대한 반복문으로 인해 j 에 대한 반복문이 5번 반복됩니다. 프로그램과 출력 결과를 따라가 보면, i=1 일 때 j=1~5 가 돌아가고, i=2 일 때, j=1~5 가 돌아가고....  i=5 일 때까지 j=1~5 가 돌아감을 확인할 수 있지요.


 사실 다중 반복문은 반복문 안에 반복문을 쓴 것 뿐이기 때문에 반복문만 알면 쓸 수 있는 스킬입니다. 하지만 프로그래밍을 처음 입문했을 때, 다중 반복문에 익숙하지 않아서 제대로 활용하지 못하는 경우가 많은 것도 사실입니다. 따라서 이 부분은 이론보단 실전이 중요하기 때문에 아래의 문제들을 풀면서 연습하고, 정답 예시를 확인해 볼 것을 추천합니다.




2. C언어 구구단


 C언어로 아래와 같은 형태의 구구단을 출력해 봅시다.


1*1=1 2*1=2 3*1=3 4*1=4 5*1=5 6*1=6 7*1=7 8*1=8 9*1=9 1*2=2 2*2=4 3*2=6 4*2=8 5*2=10 6*2=12 7*2=14 8*2=16 9*2=18 1*3=3 2*3=6 3*3=9 4*3=12 5*3=15 6*3=18 7*3=21 8*3=24 9*3=27 1*4=4 2*4=8 3*4=12 4*4=16 5*4=20 6*4=24 7*4=28 8*4=32 9*4=36 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 7*5=35 8*5=40 9*5=45 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 7*6=42 8*6=48 9*6=54 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 8*7=56 9*7=63 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 9*8=72 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81




3. C언어 별찍기


 C언어에서 반복문을 배울 때, 가장 많이 해보는 실습인 전통의(?) 강호인 별찍기 세트입니다. 각각의 문제마다 여러가지 방식의 접근이 가능하므로 스스로 풀었더라도 예시를 확인해 보는 것을 추천합니다.


백준 온라인 저지 채점 방법


(0) [BOJ 2438] 별찍기-1


(1) [BOJ 2439] 별찍기-2


(2) [BOJ 2440] 별찍기-3


(3) [BOJ 2441] 별찍기-4


(4) [BOJ 2442] 별찍기-5


(5) [BOJ 2443] 별찍기-6


(7) [BOJ 2446] 별찍기-9


풀이 모음




4. 다중 반복문 문제


(0) [BOJ 10984] 내 학점을 구해줘


(1) [BOJ 10214] Baseball


풀이 모음