본문 바로가기

C 언어

백준으로 배우는 C 언어 06. A + B

지금까지 printf 함수로 출력만 해 왔다면 이번 문제에서는 scanf 함수를 사용해서 입력된 값을 가져올 겁니다. 입력이 있다면 그 값을 저장할 변수도 필요하겠죠. 이 문제에서는 정수 int 변수를 사용해서 값을 저장할 겁니다. 


 

백준으로 배우는 C 언어 04. 고양이

printf 함수는 문자만 프린트할 수 있는 게 아닙니다. 특수 문자들도 출력할 수가 있는데요, 특수 문자들을 잘만 조립한다면 그림을 그릴 수도 있죠. 다만 프로그래밍을 할 때 일부 특수 문자는 좀 특별한 방법으..

torotoblog.tistory.com

 

백준으로 배우는 C 언어 05. 개

고양이에 이어서 다시 한번 특수 문자를 활용한 문제입니다. 이번에는 개를 그려서 출력해야 하는데요, 고양이보다 조금 더 복잡해졌습니다. 그래도 원리 자체는 비슷하니 바로 시작해 보죠! 백준으로 배우는 C..

torotoblog.tistory.com


입출력과 사칙연산의 5번째 문제, A + B(#1000)입니다. 이번 문제는 두 개의 정수 값을 입력받은 후 정수들의 합을 출력해야 하는데요, 예제에 나온 것처럼 1과 2를 입력하면 합인 3을 출력해야 하는 문제입니다. 코딩을 시작하면서 하나씩 방법을 알아보도록 하죠.

#include <stdio.h>

int main(void) {
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d\n", a+b);
    return 0;
}

못 보던 코드들이 몇 개 생겼죠? intscanf인데요, int는 변수, scanf는 서식을 입력받는 함수입니다. 

[변수 종류] [이름];
[변수 종류] [이름] = [값];

모든 프로그래밍 언어들은 다양한 형태들의 값들을 저장하는 변수(Variable)가 있는데요, 대표적으로는 정수 int, 실수 float, 그리고 문자 char 변수가 있죠. 변수를 선언하는 방법은 아주 간단합니다. 변수 종류이름만 적어주면 되는데요, 만약 처음부터 값을 정해주고 싶다면 두 번째 방법처럼 변수 종류와 이름을 적은 뒤 = 기호를 사용해서 값을 입력해 주면 됩니다. 이때 주의해야 할 점은 변수 종류와 지정해준 값의 종류가 같지 않으면 오류가 나게 됩니다. 예를 들어 문자 변수인 char a를 만들고선 값으로 정수인 5를 주면 오류가 나게 되죠. 

int a, b;

우리가 지금 사용하는 변수는 정수(int)입니다. -2,147,483,648 ~ 2,147,483,647 사이의 정수들을 저장할 수 있죠. 위 코드를 통해서 ab라는 이름을 가진 정수형 변수 두 개를 만들었는데요, 자세히 보면 방금 위에서 설명한 변수를 선언하는 방법과 조금 다른 걸 볼 수 있습니다. 만약 같은 종류의 변수를 여러 개 만들고자 한다면 이렇게 쉼표 ,를 사용하면 편리합니다. 굳이 여러 줄로 나누지 않고도 한 줄로 변수를 여러개 만들 수 있는 거죠.

scanf("%d %d", &a, &b);

다음은 입력된 서식이 있는지를 확인해주는 scanf 함수입니다. scanf의 기본 형식은 scanf("형식 지정자", 주소);인데요, 위에서 보이는 "%d %d"와 &a, &b가 형식 지정자와 주소 역할을 하고 있죠. 먼저, 우리가 지금 사용하고 있는 %d는 정수 형식 지정자인데요. 이 외에도 %f, %c, %s를 사용하면 각각 실수, 문자, 문자열을 지정할 수가 있습니다. 또 위에서 사용한 것처럼 여러 번 중복해서 사용할 수도 있죠. scanf 함수에서 형식 지정자를 사용하면 입력된 서식을 해당 형식으로 변환시켜 줍니다. 지금은 %d를 사용했으니 입력된 서식을 정수로 변환시키는 거죠.

형식 지정자를 사용해서 입력된 값을 변환했다면 변수에 값들을 저장해 줘야겠죠. 아까 a와 b라는 정수 변수들을 만들어 뒀으니 순서대로 a와 b에 저장하기만 하면 되는데요, 이때 주소 연산자(&)를 사용하면 아주 편리합니다. 변수 이름 앞에 & 기호를 붙이면 형식 지정가 입력받은 값을 차례대로 해당 변수에 입력해 줍니다. 지금은 형식 지정자를 두 번 사용했으니 차례대로 a와 b에 입력이 되는 것이죠.

printf("%d\n", a+b);

우리가 지금까지 써오던 printf 함수인데요, 이번에는 조금 달라 보이죠? printf에도 형식 지정자를 사용할 수 있습니다. 다만 이번에는 입력된 값을 지정하는 게 아니라 프린트할 값을 불러오게 되는데요, printf 함수는 문자열만 출력할 수 있기 때문에 다른 형식의 값을 출력하기 위해서는 위와 같이 지정 형식자를 사용해야 합니다. int 값을 프린트해야 하니까 정수 형식 지정자를 사용한 뒤 해당 값으로 a와 b의 합을 입력해 주면 됩니다. 수학에서 하는 것처럼 a+b 하면 되겠죠?

이제 테스트를 해 봅시다. 코드를 입력하고 디버그를 하면 전과는 다르게 입력을 할 수 있게 됩니다. 숫자 두 개를 입력한 다음 엔터를 누르면 두 숫자를 더한 값이 나오죠.

이제 제출을 해 봅시다. 언어를 C로 선택한 뒤 코드를 입력하고 제출 버튼을 클릭해 주세요.

성공입니다!

입출력과 사칙연산의 6번 7번 문제인 A-B와 AxB도 뺄쎔(-), 곱셈(*) 기호만 다를 뿐 나머지는 똑같기 대문에 6, 7번 문제는 건너 뛰도록 하겠습니다. 그럼 A/B 문제로 돌아올게요!


 

백준으로 배우는 C 언어 07. A / B

이번 문제는 나눗셈 문제입니다. 원래 이 전에 뺄셈과 곱셈 문제가 두 개 더 있지만 06번 강좌랑 같은 내용을 다루기 때문에 중복이 돼서 바로 나눗셈 문제로 넘어온 점 양해 부탁드립니다. 이번 문제를 살짝 미..

torotoblog.tistory.com