# 변수 - 화면에 내용 표시하기 (3)

안녕하세요!! 완전 열공이신데요? 벌써 다섯번째 시간이에요.

지난시간에 새로운 출력방법을 또 한가지 배웠어요.

&#x20;printf하고선  " " 안에 넣으면 출력된다 했었죠.

```
printf("출력하고 싶은 내용  이곳에 작성");  
```



또  **%d 기호 (서식 지정자)** 를 쓰게 되면    콤마 이후 값이 전달됐어요.

```
 printf("%d + %d = %d",3,4,3+4); 
 
```

(결과사진)



이제부터는   변수란  이름의   저장 공간을 알아볼거에요.



화면에 3+4=7 을 표시하는 프로그램이 있어요

```
printf("3 + 4 = %d", 3+4);
```

자 여기서 7은  컴퓨터가 3+4를 계산해서 출력해준거였어요. 그죠?

근데 3과 4 는 어때요? 우리가 프로그램 만들때 고정한 값이죠.

이 부분을 사용자한테 입력받게 해볼까요?



이렇게요!

|                         기존 프로그램                        |                            입력받는 기능을 추가한 프로그램                           |
| :----------------------------------------------------: | :--------------------------------------------------------------------: |
|                      3 + 4 = 7                         | <p>첫번재 수를 입력하세요 : 3 </p><p>두번째 수를 입력하세요: 4</p><p>계산 결과는 :  3+4 = 7</p> |

더 좋아졌죠.

이처럼 입력받는 기능을 넣으려면 어떻게 해야 할까요?



프로그램 실행 전,  더할 값이 정해져있던   3 + 4 = 7이 아니라

프로그램 실행 후,  사용자한테 입력받아 더하는 프로그램인거죠.



어떻게하냐?

이걸 하기위해 우린 두가지 개념을 알아야해요

하나는 입력이고 두번째는 입력받은걸 저장할 변수 (저장공간) 에요.

설명해드릴께요.



컴퓨터 프로그램에는 저장공간이라는 개념이 있어요.&#x20;

자판기에 천원을 넣었더니 넣은 천원을 보관하고  화면에 표시했던 것처럼요.

예를들어 3+4=7를 출력했던 프로그램을  변수라는 개념을 사용해 아래처럼 풀어볼수도 있어요

```
int a;
int b;
a = 3;
b = 4;

printf("%d + %d = %d", a, b, a+b);
```

느낌적으로 봐볼까요?&#x20;

1. 처음보는 int라는 애가 등장했고
2. &#x20;printf보니까   a, b, a+b를  %d 자리에 차례대로 넣어 출력하고 있다는 거에요. 그렇죠?

왠지  3 + 4 = 7 이 출력될 느낌이죠.



일단 얘내들이 뭐냐.

```
int a; 
int b;  
```



프로그램이 실행되면,  저장공간을 두개 만들어라 라는 뜻이에요.   그것도 정수(int)를 저장할 수 있는 애로요.

혹시 integer 라는 영어단어 뜻을 알고 계신가요?  찾아보면 '정수' 라는 의미를 가졌죠.

거기서 앞 3글자를 따온 거에요.   그래서 int.

int a;  라고 하면,   정수를 저장할 수 있는  a란 이름의 공간을 하나 생성하겠다

는 뜻이에요.

![](https://2615924995-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lraj91hJ694X3pWInQm%2F-LsZa2Xdz2AwKi7gbzql%2F-LsZdvzWq__OfqkeEx3C%2F1.jpg?alt=media\&token=95b02d04-55f1-471c-b34b-9970e5e1473b)

마치 컴퓨터에  a라  불리는 방이  만들어진거죠.

거기에  a = 3; 이라고 하면!

```
int a;
a = 3;
```

&#x20;a라 불리는 방에 3이 저장된 모습이 되는거에요.

마치 101호라는 공간에  어떤 사람이 살고있는 것처럼요.



그럼,   이  a에  3을 넣는 대신!   입력받게 해주는 명령어를 쓰면 어떻게 될까요?

```
int a;
scanf("%d", &a);
```

scanf 라는걸 쓰면  사용자로부터 입력받을 수 있게 되요.

printf는 출력할 때 썼죠?  scanf는 입력받을 때 써요.

%d  즉  정수 형태로 입력을 받을건데,   정수 형태로 입력받은걸  a 공간에 저장해라. 라는 뜻이에요.

a 앞에  &붙은거 보이시죠?  이게 주의할 점!!



자 그러면,    사용자한테 입력받는 버전으로  프로그램 완성해볼까요?

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

printf("%d + %d = %d", a, b, a+b);
```



굿!!  근데 이렇게만 쓰고 실행해보면,    \
화면에 깜빡이고만 있지   "첫번째 수 를 입력해주세요 " 라고 나오진 않아요.&#x20;

좀더 친절한 프로그램을 만들기 위해 조금 바꿔볼까요?

```
int a;
int b;

printf("첫번째 수를 입력해주세요 : ");
scanf("%d", &a);

printf("두번째 수를 입력해주세요 : ");
scanf("%d", &b);

printf("더한 결과는 ");
printf("%d + %d = %d", a, b, a+b);
```



printf 를 이용해서 첫번째 수를 입력해달라고  화면에 출력하고,  scanf를 통해  입력받은거에요.&#x20;

어때요!  신기하죠.



다음시간엔  여기서 조금 더 응용해  &#x20;

덧셈외에  곱셈, 나눗셈, 뺄셈도 해볼게요.  그러면서  변수에 대해 구체적으로 살펴볼 예정입니다!

오늘도 고생하셨어요!
