C언어에서 제어문을 배우게 되면 그때부터 간단하지만 다양한 프로그램을 만들 수 있습니다. 그 중 자주 사용되는 예제이면서 제어문을 활용할 수 있는 계산기와 구구단을 출력하는 프로그램을 만들겠습니다. 그 중 이번 포스트는 구구단 프로그램을 해보겠습니다.
#2. 구구단 출력하기
2단부터 9단까지, 1부터 9까지 곱해서 구구단 표를 아래와 같이 출력할 프로그램을 만들겠습니다.
위 출력하는 것을 분석해 봅시다. 맨 위에는 몇 단인지 표시하고 실선으로 나누고, 아래부터는 해당 단이 출력이 됩니다.
콘솔 프로그램은 한 줄을 출력하고 그 다음 한 줄을 출력하는 방식으로 나타납니다. 그럼 위의 몇 단 출력하는거랑
아래 구구단 출력하는거 두 개로 나눠서 생각해 봅시다.
#2-1 몇 단 출력하기
2단부터 9단까지 규칙적으로 나타납니다. for문을 이용해서 2부터 9까지 ' 2 단 │' 이런 형식을 출력하고, 그 다음
' 3 단 │' ... ' 9 단 │' 으로 출력합니다. 그러면 숫자만 1씩 증가되고 나머지는 똑같으므로, 반복되는 숫자를 dan이라는 변수로 쓰고 실선을 ASCII 코드나 'ㅂ'+한자 키 눌러서 쓰면됩니다. 설명을 조금 어렵게 했는데 정리하자면 아래와 같습니다.
printf("%3d 단 %c",dan,5);
☞%3d는 3칸에 맞춰서 오른쪽 정렬해서 int형을 출력하고
%c에 숫자 5를 대입하는데 ASCII 코드로 5에 해당하는 문자를 출력하라는 뜻이다.
그러면 이제 %3d에 dan이라는 int형 변수를 집어 넣는데, 2단부터 9단까지 for문으로 표현합시다. for문은 (초기식, 조건식, 증감식)와 같이 나타나며, 조건식이 거짓이 될 때까지 초기식부터 증감해 반복 실행하는 제어문입니다.
for(dan=2;dan<=9;dan++)
☞dan이 2부터 시작해서 1씩 증가해 9까지 반복 실행한다.
이제 출력하는거랑 for문을 합치면 첫번째 줄이 출력하게 나옵니다.
한 줄 개행한 뒤 이제 본격적으로 구구단을 출력해 봅시다.
#2-2 아래 구구단 출력하기
행과 열로 출력화면을 분석하면 한 행에는 똑같은 수를 곱하고 열마다 단이 서로 다릅니다.
그러면 프로그램은 한 행을 먼저 출력하고 다음 행을 출력하기 때문에 1부터 9까지 한 줄을 출력해서 반복하면 됩니다.
이제 한 줄 안에서 단이 1씩 증가하면서 똑같은 형식으로 출력하기 때문에, 위의 몇 단 출력하는거랑 비슷하게 쓰면 됩니다.
for(gop=1;gop<=9;gop++)
{
for(dan=2;dan<=9;dan++)
{
printf("%2dx%d=%2d",dan,gop,dan*gop);
}
printf("\n");
}
☞첫번째 for문은 행을 출력하는 for문이고
두번째 for문은 한 줄의 내용을 출력하는 for문이다.
dan x gop = dan * gop
gop은 바깥 for문에서 지정된 숫자로 고정되어 있고
dan만 두번째 for문에서 1씩 증가하면서 출력한다.
9단까지 한 줄을 출력했으면 한 줄 개행한 뒤에 다음 숫자를 곱해지는걸로 넘어간다.
이제 첫번째 몇 단 출력하는거랑 아래 구구단 표 출력하는거를 합쳐서 완성하면 아래와 같습니다.
이 프로그램은 크게 두 개의 큰 for문으로 구성되어 있는걸 볼 수 있습니다. 꼭 첫번째 for문을 안 쓰고 그냥 구구단 표 출력하게 할 수 있지만, 깔끔하게 보여주고 싶다면 써도 괜찮습니다. 그리고 단 사이의 선도 꼭 안 쓰고 그냥 몇 칸 띄어서 나눌 수 있지만, 이것도 그냥 보기 좋게 하기 위해서 쓴 것 뿐입니다.
이제 이걸 활용해서 19단까지 구구단을 출력하거나, 원하는 단을 입력 받아서 출력하게 프로그램으로 만들어 볼 수 있습니다.
'Programming > C언어' 카테고리의 다른 글
[C언어] Hello World! (0) | 2016.12.08 |
---|---|
[C언어] C언어의 역사와 특징 (0) | 2016.12.05 |
[C언어] 무한 반복하는 사칙연산 계산기 (2) | 2016.08.02 |
전형적인 C프로그램 소스 코드 (0) | 2016.08.01 |
[C언어] 성적처리 프로그램 1.6 (2016.07.24 업데이트) (0) | 2016.07.24 |