본문 바로가기

Embeded C/C언어 예제

C언어로 구구단을 작성하여 보자!


/*구구단을 출력하는 프로그램을 만들겠습니다*/

 

계획

구구단의 기본형태

2*1 = 2

2*2 = 3

    :

9*9 = 81

 

단부분 * (1~9) = 결과 라는 형태가 됩니다

 

단부분

변수 int iNum

222222222 333333333 444444444 999999999의 값으로 만들어야 합니다.

한자리수로 반복되는 문을 만들기 위해선 나누면 됩니다

여러 값으로 나누어본 결과 9로 나누면 9자리식 반복되는 수가 생깁니다
(C언어에서 프로그램을 만들시 먼저 하나하나 Data값을 만들어보고 그것을 곱해보기도 나누어보기도 하는것이 좋은 방법인것 같습니다.) 

 

1/9 = 0,  2/9 = 0, 3/9 = 0 9/9 = 1, 10/9 = 120/9 = 281/9 = 9.계속

*소수자리는 무시 정수로만 표현

000000000 111111111 222222222 ………

 

여기에 +2를 하면 2단부터 시작하는 것을 볼수 있는데 변수를 71보다 작게해야 2단에서 9단까지 표현할수있습니다

(iNum / 9) +2를 하고 iNum < 71  

 #include <stdio.h>

 

int main()

{

             int iNum;

 

             for(iNum = 2 ; iNum < 71 ; ++iNum)

             {

                           printf("%d \n",(iNum/9)+2,);

             }                                      

             return 0; 

}

위식결과

222222222 333333333 444444444 999999999

 

(1~9) * 9번 반복문

단부분은 해결이 되었다. 이번에는 단과 곱해지는 1~9까지 9번을 반복하는 식을 만들어야 됩니다

 

10미만의 자리수가 반복되는 경우 %를 쓰면 됩니다

iNum % 9를 하게되면

012345678 0123456789 0123456789 가 됩니다

여기 1을 더하면

원하는 값인 123456789 123456789 가 됩니다

식은 (iNum % 9) +1이 됩니다

 

완성

 

printf문에 1)결과와 2)결과를 곱해주면 구구단이 완성이되는

c언어로 표현하면 아래와 같습니다
 

 #include <stdio.h>

 

int main()

{

             int iNum;

 

             for(iNum = 2 ; iNum < 71 ; ++iNum)

             {

                           printf("%d * %d = %d \n",(iNum/9)+1,(iNum%9)+1,((iNum/9)+1)*((iNum%9)+1));

             }                                      

             return 0; 

}


결과>>

 2 * 1 = 2
 2 * 2 = 4
 2 * 3 = 6
      : (중간생략)
 9 * 7 = 63
 9 * 8 = 72
 9 * 9 = 81 

 

조만간

위문장을 while문으로 만든것하고

2개의 for문을 사용하여 정렬된 형태의 구구단에 대하여도 다루어 보겠습니다