[백준] 2739

YUN·2025년 9월 16일

C++

목록 보기
14/79

1. <iostream>

#include <iostream>

using namespace std;

int main() {
    int n;
    
    cin >> n;
    int i=1;
    while(i<10) {
        cout << n << " * " << i <<" = "<< n*i << "\n";
        i++;
    }
    
    
    
    return 0;
}

오답노트

(1) cout으로 출력 가능한 자료형

위와같이 C++ 표준 라이브러리에 정의된 자료형은 전부 출력이 가능하다.

2. <stdio.h>


#include <stdio.h>

int main() {
    int n;
    int i = 0;
    scanf("%d", &n);
    
    for(i=1;i<10;i++) {
        printf("%d", n);
        printf("%s", " * ");
        printf("%d", i);
        printf("%s", " = ");
        printf("%d\n", n*i);
        
    }
    return 0;
}

처음에 이렇게했다. 형식 지정자를 잘 사용하지 못했다.

#include <stdio.h>

int main() {
    int n;
    int i = 0;
    scanf("%d", &n);
    
    for(i=1;i<10;i++) {
        printf("%d * %d = %d\n", n, i, n*i);
    }
    return 0;
}

C언어형식 지정자를 잘 활용하는 위의 코드가 간결하고 좋은 방법인듯하다.

오답노트

(1) printf() 형식지정자와 자료형

printf() 또는 scanf() 사용시 데이터를 설정한 형식 지정자출력 또는 저장한다.

헷갈리면 무엇을 모르는지에 초점을 두면된다. 무엇을 모르는지형식 지정자가 대신한다.

예를들어

char c;
scanf("%o", &c);  // 101 입력
printf("%d\n", c); // 출력: 65 (101(8진수) = 65(10진수))

라이브러리 버퍼에 저장된 101이라는 데이터가 10진수인지, 16진수인지, 8진수인지 2진수인지, 문자인지 뭔지 정보가 없기때문에 모른다.

얘를 형식 지정자가 대신한다.

현재 형식 지정자가 %o 이므로 1018진수 101 이다.

-> 10진수로 65이고, 이를 c에 저장한다.

printf("%o", 12);

12는 이미 10진수 리터럴이다.

어떤 데이터를 출력할지는 알고있지만, 얘를 어떤 형식으로 출력할지는 모른다.

10진수 122진수로, 8진수로, 16진수로, 다양한 형식으로 출력할수있다.

얘를 형식 지정자가 대신한다.

현재 형식 지정자가 %o 이므로 10진수 128진수로 출력한다.

-> 12=8+4 이므로 8진수14 이다. 즉, 14를 출력한다.

profile
안녕하세요. 전자공학부 학부생의 공부 기록입니다.

0개의 댓글