본문 바로가기

C

([C언어] 8강) 다중 for문

 

 

저번시간에 for문에 대해 배웠습니다

 

for문 안에 for문을 넣으면 2중 for문이라고 부릅니다

 

또 그 2중 for문안에 for문을 넣으면 3중 for문이구요

 

자 그럼 아래 코드를 보시죠

 

for(int i = 0; i < 100; i++)
{
    for(int j = 0; j < 100; j++)
    {
    }
    for(int j = 0; j < 100; j++)
    {
    }
}

이 코드는 몇중for문일까요?

2중for문이 2개이다 라고 말할수있습니다!

 

그럼

for(int i = 0; i < 100; i++)
{
    for(int j = 0; j < 100; j++)
    {
        for(int k = 0; k < 100; k++)
        {
        }
    }
}

이렇게하면 몇중 for문일까요?

3중for문이라고 말할수있겠죠~?

 

 

2중 for문을 설명해드릴게요

2중for문은 for문 안에 for문이 있는 구조죠!

for(int i = 0; i < 100; i++)
{
    for(int j = 0; j < 100; j++)
    {
        printf("A");
    }
}

이렇게요!

이 2중 for문안의 printf함수는

i가 0이고 j가 0~99까지 반복하며 호출되고

i가 1이고 j가 0~99까지 반복하며 호출되고

계속 반복해서

i가 99고 j가 0~99까지 반복하면서 호출되므로

총 100 * 100 = 10000

10000번 호출되겠네요

이해 되셨나요?

 

 

자 그럼 오늘도 문제를 내보도록 하겠습니다.

저번 강좌처럼 문제의 답은 아래에 적어놓을테니 꼭 풀어보고 나서 확인해주세요~

 

문제
저는 구구단을 출력하고싶습니다. 2중for문을 사용해 아래 형식처럼 화면에 출력하는 구구단 출력 프로그램을 만들어주세요

 

출력 예시

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

이번 강좌는 전에 for문에 이어서 조금 심화로 나온것이기 때문에

설명이 길지 않습니다 강좌 여기서 마치고 아래로 내리면 답이 나와있으니 풀고나서

비교해보세요~~

 

아참! 이번강좌의 다중 for문 개념은 다른 문법을 쓸때도 유용하게 쓸수있는 개념이니 꼭 외워주세요!

 

 

 

 

 

 

 

 

정답

#include <stdio.h>

int main()
{
    for (int i = 2; i < 10; i++)
    {
        printf("%d단\n",i);
        for (int j = 1; j < 10; j++)
        {
            printf("%d x %d = %d\n", i, j, i * j);
        }
    }
}

 

'C' 카테고리의 다른 글

([C언어] 10강) 배열  (0) 2019.06.26
([C언어] 9강) while문과 do-while문  (0) 2019.06.26
([C언어] 7강) for문과 continue  (0) 2019.06.26
([C언어] 6강) switch문과 break  (0) 2019.06.25
([C언어] 5강) if문과 else, else-if문  (0) 2019.06.25