본문 바로가기

C언어 강좌

[C언어_09] C언어 문제 풀이 #3

안녕하세요.

 

이번시간에는 C언어 문제를 풀어보는 시간을 가지려고 합니다.

 

지난 강좌 Review

지난 강좌 보기 : [C언어_08] 중첩 반복문/무한루프: 문제풀이에 어떻게 응용하는가

 

[C언어_08] 중첩 반복문/무한루프: 문제풀이에 어떻게 응용하는가

안녕하세요, 이번 시간에는 앞서 배웠던 반복문을 조금 더 심화적으로 살펴볼 것입니다. 또한 중첩 반복문이나 무한 루프는 개념적인 부분보다는 어떻게 응용하는가가 중요하기 때문에 어떠한

swdoodle.tistory.com

지난 시간에는 반복문을 응용하여

 

중첩 반복문과 무한 루프를 활용하는 법을 배웠습니다.

 

이번 시간에는 이해하기 어려운 중첩 반복문을 문제를 통해 알아보도록 합시다.

 

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단이 제외된 구구단을 확인할 수 있습니다.

 

| 마무리

이번시간에는 중첩 반복문을 활용하는 문제를 풀어보았습니다.

 

문제를 풀어봄으로서, 중첩 반복문에 대해 좀 더 쉽게 이해하셨기를 바랍니다.

 

감사합니다.