Pepcilia avatar

[KR]초보자를 위한 C언어 학습 -3

pepcilia

Published: 28 Jun 2017 › Updated: 28 Jun 2017[KR]초보자를 위한 C언어 학습 -3

[KR]초보자를 위한 C언어 학습 -3

안녕하세요. pepciliaHive account@pepcilia입니다. 이번 포스팅에서 다룰 내용을 소개하겠습니다.

  • 사용자로부터 입력을 받기위해 사용하는 scanf 함수
  • 자료형에 대한 조금 더 다양하고 깊은 이해

윗 내용들을 다루어 보겠습니다. 다음포스팅에서 더 다루어졌으면 하는 부분이나, 이번 포스팅 내용에 대하여 추가할 부분 또는 궁금한 부분이 있으시면 댓글에 적어주시면 최대한 빨리 답변하도록 하겠습니다.
또, 여러가지 예제들을 다루어 보고싶으신분은 백준 온라인 저지 에 대해 설명을 적어놓으신 geunwoong0624Hive account@geunwoong0624님의 글을 참고하셔서, 해당 부분의 문제를 풀어보시는 것도 좋습니다.


첫 번째로, 프로그램에서 사용자의 입력이 왜 필요할까요?

프로그램에서 사용자의 입력이 없다고 생각해보면, 프로그램은 항상 똑같은 결과만을 출력하기 때문에, 큰 효용가치가 없기 때문입니다.
이전 시간에서 배웠던 printf와 scanf를 인간과 컴퓨터 사이의 관계로 나타내면
printf : computer -> user
scanf : computer <- user
로 간단하게 나타낼 수 있습니다.
사용자의 입력에 대한 필요성은 여기까지 살펴보도록하고, 직접 사용하면서 배워보겠습니다.

#include
int main(void)
{
     int a=0; //int형 자료형을 가진 a라는 이름을 가진 변수를 선언한 후 0으로 초기화합니다.
     scanf("%d",&a); //scanf 함수를 사용하여 a에 사용자가 입력한 정수를 저장하는 부분입니다.
     printf("a의 값은 %d입니다.",a); //a의 값을 출력하는 부분입니다.
     return 0;
}

scanf함수의 사용법은 우측과 같이 쓰면 됩니다. scanf("형식지정자,&변수명);
변수명 앞에 &기호가 붙는 이유는 나중에 포인터 부분에서 자세히 다루도록 하고, 지금은 넘어가겠습니다.
윗 부분을 이해하기 위해서

  • 사용자로부터 2개의 정수를 입력받고, 덧셈연산을 한 결과를 출력하는 소스를 코딩해보세요.
  • 사용자로부터 3개의 정수를 입력받아, 합계와 편균값을 출력하는 소스를 코딩해보세요.
    해답은 포스팅 제일 아래 부분에 있습니다.
    위의 두 예제로 충분히 scanf함수에 대한 이해가 됫으리라 봅니다. 더 많은 예제는 백준을 참고하시죠.

두번째, 자료형에 대해 설명해보려합니다

앞선 포스팅에서 간단하게 언급했지만, 좀더 세밀한 이해를 필요로 하기때문에 알아 둘 필요가 있습니다..
정수형 자료형은 short, int, long, long long가 있습니다.

위 그림과 같은 차이가 있는데, 비트 수 차이와, 표현가능한 숫자의 범위 차이가 있습니다
비트수는 알아두면 좋다. 그리고 숫자의 범위는 알아두면 좋습니다.
암기해야한다는 뜻이아니라, 대소관계정도만 알아두면 된다는 뜻입니다.
실수형 자료형은 short, double, long double 가있고, 부동소수점 방식으로 표현되는데
이 표현방법은 C언어 강의 이후 자료구조 포스팅에서 살펴보도록하고, 일반적으로 double을 사용한다고만 알고있으면 됩니다..
또, scanf함수에서 float자료형은 %f형식지정자를 사용하고, double자료형은 %lf형식지정자를 사용한다.

이제 문자형에 대해서 알아보겠습니다.

  • 문자는 컴퓨터보다 인간에게 중요하며, 숫자를 이용해서 구현할 수 있습니다.
    *그러기 위해선 공통적인 규격이 필요하며, 현재로썬 아스키 코드를 사용합니다.

    위 표는 암기하실 필요는 없고, 필요할 때 마다 보고쓰시면됩니다.
    아래와 같이 작동하는 소스코드를 작성해보는 것으로 포스팅을 마치겠습니다.

    역시 해답은 포스팅 아래에 있다 .
해답_1
// 사용자로부터 입력 받은 2개의 정수의 합을 계산하여 출력 #include 
int main(void)
{
     int x;   // 첫 번째 정수를 저장할 변수
      int y;  // 두 번째 정수를 저장할 변수
      int sum;
     printf("첫 번째 숫자를 입력하시오:");  // 입력 안내 메시지 출력
     scanf("%d", &x);   // 하나의 정수를 받아서 x에 저장
     printf("두 번째 숫자를 입력하시오:");  // 입력 안내 메시지 출력
      scanf("%d", &y);  //하나의 정수를 받아서 y에 저장
     sum = x + y; //변수 2개를 더한다.
     printf("두수의 합: %d", sum);  // sum의 값을 10진수 형태로 출력
     return 0;
 }
해답_2
#include
int main(void)
{
     int x;
     int y;
     int z;
     int sum;
     scanf("%d %d %d",&x,&y,&z);     //이렇게 세개의 변수를 동시에 입력받을 수도있다.
     sum = x+y+z;
     printf("합 : %d  평균 :%d",sum, sum/3); //출력과정에서 수식이 와도 상관없다.
     return 0;
}
해답_3
 
#include 
int main(void)
{
    char initial;
    char grade;
    printf("영어 이름 첫글자는 무엇인가요: ");
     scanf(" %c", &initial);
    getchar();
    printf("프로그래밍 과목 학점을 물어보아도 되나요?(A부터 F) "); 
    scanf(" %c", &grade);
    printf("%c군의 프로그래밍 과목 성적은 %c입니다. ", initial, grade);
    return (0);
}

pepciliaHive account@pepcilia였습니다. 다음은 조건문과 반복문에 대해 알아보겠습니다.
자세히 하려다보니 진도가 느려지는 감이있네요.
유용한 글이라 생각하시면 follow & upvote 부탁드립니다!!

Leave [KR]초보자를 위한 C언어 학습 -3 to:

Written by

travel , programming , study , muksteem

Read more #kr posts


Best Posts From Pepcilia

We have not curated any of pepcilia's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From Pepcilia