안녕하세요.
이번시간에는 C언어 문제를 풀어보는 시간을 가지려고 합니다.
| 지난 강좌 Review
지난 강좌 보기 : [C언어_08] 중첩 반복문/무한루프: 문제풀이에 어떻게 응용하는가
지난 시간에는 반복문을 응용하여
중첩 반복문과 무한 루프를 활용하는 법을 배웠습니다.
이번 시간에는 이해하기 어려운 중첩 반복문을 문제를 통해 알아보도록 합시다.
| C언어 문제
이번문제는
사진과 비슷하게 구구단을 출력해보는 프로그램을 만들어보려고 합니다.
| 프로그램 설계
먼저 구구단을 만들기 위해서는 반복문을 사용해야 한다는 것을 알수 있습니다.
구구단의 형태는 ( N * J ) 형태로 이루어져 있습니다.
N의 값은 1~9까지 이고 J의 값도 1~9 까지 입니다.
일단 N과 J에 값을 넣는 과정을 9번 반복해야 함을 할 수 있습니다.
그러면 중첩 반복문을 이용하면 프로그램이 만들어 질 것 같습니다.
| 문제 풀이
그러면 천천히 프로그램을 만들어 봅시다.
먼저 정수 N과 J를 선언해 줍시다.
int N,J;
그런 다음 중첩 반복문의 바깥쪽 부분을 만들어 줍시다.
for(N = 1; N <= 9; N++)
바깥쪽 반복문을 만든 다음 안쪽 반복문을 만들어 줍시다.
for(N = 1; N <= 9; N++){
for(J = 1; J <= 9; J++)
}
그러면 중첩 반복문이 완성되었고, 구구단을 출력해 봅시다.
for(N = 1; N <= 9; N++){
for(J = 1; J <= 9; J++)
printf("%d x %d = %d\n", N, J, N*J);
}
}
그러면 전체 코드는 다음과 같을 것입니다.
#include <stdio.h>
void main()
{
int N, J;
for(N = 1; N <= 9; N++)
{
for (J = 1; J <= 9; J++)
printf("%d x %d = %d\n", N, J, N * J);
}
}
그러면 출력 결과를 확인해 볼까요?
우리가 원했던 구구단이 출력되는 것을 확인할 수 있습니다.
| 문제 응용
그렇다면 조금 문제를 바꾸어서
구구단에서 8단만 출력하지 않도록 하는 방법은 무엇일까요?
지난 시간에 배웠던 조건문과 continue문을 활용하면 됩니다.
바깥 조건문에서 N = 8일때 continue문을 작성하면 되겠지요?
다음과 같이 코드를 수정해 보세요
#include <stdio.h>
void main()
{
int N, J;
for(N = 1; N <= 9; N++)
{
if (N == 8)
continue;
for (J = 1; J <= 9; J++)
printf("%d x %d = %d\n", N, J, N * J);
}
}
그럼 출력된 결과를 볼까요?
8단이 제외된 구구단을 확인할 수 있습니다.
| 마무리
이번시간에는 중첩 반복문을 활용하는 문제를 풀어보았습니다.
문제를 풀어봄으로서, 중첩 반복문에 대해 좀 더 쉽게 이해하셨기를 바랍니다.
감사합니다.
'C언어 강좌' 카테고리의 다른 글
[C언어_11] 2차원 배열과 메모리의 특성 (0) | 2020.11.15 |
---|---|
[C언어_10] 1차원 배열 & 배열을 이용한 문자열 처리 (0) | 2020.11.09 |
[C언어_08] 중첩 반복문/무한루프: 문제풀이에 어떻게 응용하는가 (0) | 2020.11.02 |
[C언어_07] 반복문(while / for), continue, break (0) | 2020.11.01 |
[C언어_06] C언어 문제 풀이 #2 (0) | 2020.10.14 |