C언어) 14. for문 예제 - 구구단 출력
문제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는 되지 않고 프로그램은 끝난다.
반복이 많아지고 변수가 많아질수록 매우 복잡해집니다.
하지만 프로그래밍은 동시에 작동하지 않고 순서대로 작동하기때문에
순서를 하나하나 짚으면서 가면 이해할수 있다.
이해가 된 후에 정답을 보지 않고 스스로 한번 더 풀어보는것을 추천할게요!