1. 문제
두 정수 A와 B를 입력받은 다음,
A+B를 출력하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/1000
2. 풀이
1) 정수 생성
문제에서 두 정수 A와 B가 언급됐음으로
int A;
int B;
를 작성함으로서 정수를 보관할 변수 A와 B를 생성합니다.
int는 integer의 줄임말로 정수 변수를 생성할 땐 int를 작성해줍니다.
2) scanf 함수
scanf함수와 관련된 내용을 아직 잘 모르신다면
파랑색 글씨로 써진 '이 글'을 클릭하셔서
scanf에 대한 기초를 습득하신 다음
아래 글을 읽어보시는 걸 추천드리고 싶습니다.
이 글에선 속성으로 scanf에 대해 설명하고 넘어갈 예정입니다.
만약 scanf에 대해 잘 아신다면 바로 3. 코드 로 넘어가시는 걸 추천드립니다.
문제에서 '두 정수 A와 B를 입력받은 다음'이란 말이 있습니다.
즉 입력을 받는 함수인 scanf 함수에 대해 알아야 하는 문제입니다.
scanf 형식은 아래와 같습니다.
scanf("입력받을 문자 서식", 변수 주소);
여기서 '입력받을 문자 서식'이란
입력받을 문자가 정수인지(1, 2, 3), 실수인지(1.25), 문자인지(부엉부엉)
를 물어보는 것입니다.
정수면 %d, 실수면 %f, 문자열이면 %s를 작성해줘야 합니다.
예를 들어서 정수를 입력받게 할 예정이라면
scanf("%d", 변수 주소);
이렇게 작성해주면 됩니다.
%d 뒤에 '변수 주소'가 보입니다.
c++에서 변수 앞에 &를 붙이면 변수의 주소를 가리키게 됩니다.
가령 제가 int A;를 작성해서 A란 변수를 생성했다고 해봅시다.
그리고 다른 줄에 A앞에 &A를 작성해주면 A변수의 주소를 가리키게 됩니다.
예시를 들어보자면
#include <stdio.h>
int main(void) {
int A;
scanf("%d", &A);
return 0;
}
라고 작성을 하면,
정수(1, 2, 3~99)가 입력받아질 때
그 입력받은 정수는 A란 변수(집)에 저장해 놓겠습니다,가 됩니다.
예시로 위의 코드를 실행시킨 뒤
제가 키보드에서 숫자 5를 클릭하면
이 숫자 5는 변수 A에 저장됩니다.
입력을 받았으면
그 입력받은 걸 출력해야 겠죠.
그래서 scanf (입력)함수는 printf(출력) 함수와 같이 쓰입니다.
3) %d
%d는 scanf 즉 입력받을 때 말고도
printf 즉 출력할 때도 %d가 쓰입니다.
바로 예시를 들어보겠습니다.
#include <stdio.h>
int main(void) {
int A;
scanf("%d", &A);
printf("A에 입력된 숫자는 %d 입니다.", A);
return 0;
}
위의 코드를 해석해보자면
int A; 는 정수를 담을 A변수를 생성하겠다. 이고,
scanf("%d", &A); 는 정수를 입력받을 예정(%d)인데 입력받은 정수는 변수 A에 저장할 거다. 이고,
printf("A에 입력된 숫자는 %d 입니다.", A); 는
변수 A에 담긴 숫자(정수)를 %d를 작성함으로서 출력할 수 있습니다.
제가 위의 코드를 실행시킨 뒤 5를 입력했다면 아래 사진처럼 나올 것입니다.
5를 입력함으로서 변수 A에는 정수 5가 들어갔을 것입니다.
첫 번째 줄에 제가 5를 입력했기 때문에 보이는 것입니다.
printf란 출력함수를 통해 변수 A에 저장되어 있던 값 5가
포함돼서 문자열(A에 입력된 숫자는 어쩌고, 저쩌고)이 출력된 것을 볼 수 있습니다.
3. 코드
#include <stdio.h>
int main(void) {
int A;
int B;
scanf("%d", &A);
scanf("%d", &B);
printf("%d", A + B);
return 0;
}
정수를 담을 변수 A와 B를 생성하고
입력을 받아야 하니 scanf함수를 생성해서 입력을 받고,
A와 B를 더한 값을 printf함수를 통해 출력하는 코드입니다.
코드를 실행시킨 후
1과 2를 입력했더니
1+2의 결과값인 3이 나온 것을 확인할 수 있습니다.
*추가
덧셈이 아니라 뺄셈을 하고 싶을 경우
A+B를 A-B로 바꿔주면 바로 끝이 납니다.
'IT > BaekJoon' 카테고리의 다른 글
[백준/C++] 18108번- 1998년생인 내가 태국에서는 2541년생?! (0) | 2022.07.12 |
---|---|
[백준/C++] 1008번 A/B : '절대오차'가 무슨 소리일까? (0) | 2022.07.12 |
[백준/C++] 10172번 개/강아지 출력 (0) | 2022.07.11 |
[백준/C++] 10171번 고양이 출력 (0) | 2022.07.11 |
[백준/C++] 10718번 We love kriii (0) | 2022.07.11 |