백준 웹사이트 "2739번 - 구구단" 문제풀이입니다.
언어는 C언어입니다. (제출 언어: C99)
문제
소스 코드
#include <stdio.h>
int main(void){
int N;
scanf("%d", &N);
for (int i = 1; i < 10; i++)
{
printf("%d * %d = %d\n", N, i, N*i);
}
}
문제 풀이
백준 단계별로 풀어보기 3단계 'for문' 첫번째 문제입니다. 앞으로 수도 없이 자주 사용하게 될, for문의 기초를 연습해볼 수 있습니다. 코드 작성 후 출력 결과를 꼭 확인해보시고, 띄어쓰기 같이 사소한 부분에서 틀리지 않게 주의해주세요!
참고
Line 7을 보시면, for문을 생성할 때 변수 i도 같이 생성해줍니다. 이때 생성한 변수 i는 그 for문의 내부에서만 유효하며, for문 밖에서는 접근할 수 없습니다. 아래와 같은 예시를 볼까요?
#include <stdio.h>
int main(void){
int N;
scanf("%d", &N);
for (int i = 1; i < 10; i++)
{
printf("%d * %d = %d\n", N, i, N*i);
}
printf("%d", i); // error!
}
위와 같이, Line 7에서 선언한 변수 i를 for문의 밖인 Line 11에서 접근하고자 하면 에러가 뜹니다. 만약 변수를 for문 밖에서 접근하고 싶다면, 그 변수의 선언도 for문 밖에서 해야 합니다. 아래를 찹고해주세요.
#include <stdio.h>
int main(void){
int N;
scanf("%d", &N);
int i;
for (i = 1; i < 10; i++)
{
printf("%d * %d = %d\n", N, i, N*i);
}
printf("%d", i);
}
이처럼 Line 7에서 변수를 생성하고, Line 8~11 for문에서 이용하는 방법이 있습니다. 이 경우, Line 12에서 변수 i에 접근해도 에러가 생기지 않습니다. 참고로, 이때 Line 12에서 출력되는 변수 i의 값은 10입니다. 'i++'에 의해 increment가 일어나 i의 값이 9에서 10으로 바뀐 후, 이 값을 'i<10'이라는 조건문과 비교하여 조건이 만족되지 않을 경우 for문의 종료가 일어난 형식이므로, 변수 i의 값은 9가 아닌 10이 됩니다.
반응형
'코딩 > 백준 BOJ' 카테고리의 다른 글
[백준/C언어] 8393번 - 합 (0) | 2021.12.24 |
---|---|
[백준/C언어] 10950번 - A+B - 3 (0) | 2021.12.23 |
[백준/C언어] 2884번 - 알람 시계 (0) | 2021.12.22 |
[백준/C언어] 14681번 - 사분면 고르기 (0) | 2021.12.22 |
[백준/C언어] 2753번 - 윤년 (0) | 2021.12.22 |