프로그래밍 언어/C언어

C언어) 14. for문 예제 - 구구단 출력

luana_eun 2024. 4. 13. 17:15
728x90

 

 


문제1) 
3단을 입력하면, 3x1=3부터 3x9=27까지 출력하시오.

 

<문제해결 탐색>

①3단이라고 입력을 받아야 한다 -> 단 입력변수 n이 필요하다.

②3단을 1부터 9까지 9번 반복 -> for문이 필요하다.

③1부터 9까지 순차적으로 증가 -> 1씩 증가변수 i가 필요하다.

<결과>

 

 

 


문제2)
숫자를 입력받고 그 숫자만큼의 구구단을 출력하시오.
3단을 입력하면 1x1=1부터 3x9=27까지 출력

 

<문제해결 탐색>

주의!! 문제1과 문제2의 차이점은, 문제1은 단의 변화가 없지만

문제2는 단도 1씩증가해야한다.

단도 변하고 뒤의 숫자도 변합니다 2개가 증가하므로

for문이 2개 필요하다.

①몇 단까지 출력할지 단을 입력받아 -> 단 입력변수 n필요

②단이 1부터 n까지 증가 -> for문과 변수i 필요

③숫자가 1부터 9까지 증가 -> for문과 변수j필요

<결과>

.

.

.

.

.

.

문제1 정답)

3번줄: 단을 입력받을 변수n선언.

4번줄: 단을 입력받기 위해 입력함수 사용

5번줄: 구구단의 곱해질 숫자변수i를 for문에 맞게 작성

i가 9가 될때까지 밑의 printf를 반복한다.

6번줄: 구구단 출력 형식을 그대로 출력한다.

 

 

 

문제2 정답)

5번줄: 단이 1부터 n까지 증가해야 된다.

단 변수i를 지정하고; i는 n이 될때 까지 반복; 1씩 증가

6번줄: i가 1일 동안 뒤의 곱해질 숫자는 1부터 9까지 늘어나야 한다.

i가 2일 동안 뒤의 숫자는 1부터 9까지 늘어난다.

i가 3일때도 마찬가지이다.

즉, 위의 문제1에서 하나의 구구단을 출력하는 문장을

또 하나의 for문장 안으로 넣은 것이다.

9번줄: 단이 하나 끝나면 보기 편하게 한칸씩 간격을 준다.

 

 

 

<동작순서>

*이해 안되는 분만 보세요*

5번줄의 for의 i가 1이다

->6번줄의 for가 1부터 9까지 곱해서 출력

->한 칸 간격주기(printf("\n")

-> 9까지 곱하면 다시 5번줄로 돌아감

->i가 1증가하여 2가 된다 (2단)

->j는 또다시 1부터 9까지 곱해서 출력

->한 칸 간격주기(printf("\n")

->다시 5번줄로 돌아가서 i는 3이 된다.

->j는 또다시 1부터 9까지 곱해서 출력

->한 칸 간격주기(printf("\n")

->i는 n까지만 반복하기로 했으니 4는 되지 않고 프로그램은 끝난다.

반복이 많아지고 변수가 많아질수록 매우 복잡해집니다.

하지만 프로그래밍은 동시에 작동하지 않고 순서대로 작동하기때문에

순서를 하나하나 짚으면서 가면 이해할수 있다.

이해가 된 후에 정답을 보지 않고 스스로 한번 더 풀어보는것을 추천할게요!

728x90