-
C언어로 구구단 만들기C언어/C언어 예제 2020. 7. 9. 06:28
작년에 컴퓨터 시작할 때 쯤 적은 글인데 블로그에서 많은 분들이 찾는 글이라서...
내용이 미흡해 해석을 따로 달아두려고 했는데, 아무리 써도 글이 좀 난해해 간단한 팁으로 대체합니다.
그냥 간단히 아래 코드들 실행하면서 어떻게 돌아가는지 잘 모르겠다 싶으면
for문 안에서 변화하는 숫자들을 출력해서 관찰하시면 직관적으로 쉽게 아실 수 있어요.
예를 들어 아래 코드들은 대부분 for 안의 변수 i 혹은 j를 찍어보면 됩니다.
Q. C언어로 구구단을 만드세요.
1번. 1개의 숫자를 입력해서 해당 숫자에 입력되는 구구단만 출력
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { int num; printf("숫자를 넣어주세요 : "); scanf("%d", &num); //입력부 for (int i = 1; i <= 9; i++) //숫자를 입력하면 for문에서 그걸 처리할 것 같지만... { //실제로 for문은 1~9를 입력부에 곱해주는 역할이라 1~9까지만 반복 { printf("%d x %d = %d", num, i, num*i); } //첫번째%d 입력부, 두번째%d 1~9, 세번째%d는 두수의 곱 printf("\n"); //for문을 1~9를 반복하면서 입력된 수를 곱해주는 걸 인쇄 } }
위 예시에서 알 수 있는 것
1. 숫자를 넣으면 for문에서 넣은 숫자를 처리할 것 같지만, 실제로는 for문은 1~9를 반복하기만한다.
2. 입력된 숫자는 기존 for문으로 반복되는 숫자에 곱해주기만하는 역할을 한다.
2번. 2개의 숫자를 입력해서 작은 숫자의 구구단부터 큰 숫자의 구구단까지 전부 출력
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { int num1, num2; printf("첫번째 숫자를 넣어주세요 : "); scanf("%d", &num1); //작은 숫자가 들어갈 경우 여기서부터 구구단 출력 시작 printf("두번째 숫자를 넣어주세요 : "); scanf("%d", &num2); //큰 숫자가 들어갈 경우 여기까지 구구단 출력 if (num1 > num2) //보통 첫번째 작은 숫자, 두번째 큰 숫자지만 반대로 넣을 경우 교체하는 if문 { int temp = 0; //num1과 num2를 1대1로 교환하는건 불가능해서 임시의 변수를 만들어줌 temp = num2; //임시변수에 num2값을 먼저 입력하고 임시변수가 없을 경우 진행 안됨 num2 = num1; //num2의 값에 num1의 값을 입력 num1 = temp; //num1의 값은 임시변수에 있던 num2값을 입력 } for (int i = num1; i <= num2; i++) //1~9까지 9번 반복되는 두번째 for문이 몇번 돌아갈 것인지 { //결정하는 for문. num1에서 시작되어 num2값에서 끝 for (int j = 1; j <= 9; j++) //1~9까지 반복되는 두번째 for문 { printf("%d x %d = %d", i, j, i*j); //사용자가 입력한 첫번째 for문 값과 1~9가 반복인 printf("\n"); //두번째 for문값을 곱해준 뒤 인쇄한다. } printf("\n"); //해당 공백은 한 단위의 구구단이 끝나면 한칸넘겨주는 인쇄 } }
위 예시에서 알 수 있는 것
1. 이중 for문은 사각형 만들기와 비슷하다.
첫 for문은 세로줄의 숫자에 크게 관여하고 가로는 거기에 맞춰 움직인다.
2. a라는 변수값과 b라는 변수값을 교환할 때는 1개의 임시 여분의 변수가 더 필요하다.
'C언어 > C언어 예제' 카테고리의 다른 글
C언어로 별찍기 (0) 2020.07.10 C언어로 두 숫자 입력받아 사각형 모양으로 숫자를 출력 (0) 2020.07.10 C언어로 숫자 입력받아 정사각형 모양으로 숫자를 출력 (0) 2020.07.09