티스토리 뷰

반응형

 

주어진 학습목표를 이루기 위해서 이해를 우선으로 두고 공부할 것이다.

들어가기 전에 학습목표, 핵심 단어는 강의 자료를 가져올 것이고 그 이후로는 내가 이해하고 공부한 부분을 직접 적고, 마지막에는 배운 점이나 느낀 점을 적도록 하겠다. 

 

 


 

 

들어가기 전에

C에서는 정수나 문자열 외에도 다양한 데이터 타입이 정의되어 있습니다. 또한 각 타입에 맞는 형식 지정자를 통해 적절한 포맷으로 출력하고, 다양한 연산자를 통해 조건문을 설정하거나 데이터 값을 계산할 수 있습니다.

 

 

학습 목표

다양한 데이터 타입과 형식 지정자를 나타내는 방법을 학습합니다.

다양한 연산자를 이용하여 조건문을 표현하는 방법을 학습합니다.

 

 

핵심 단어

  • char
  • long
  • float
  • double
  • %
  • &&
  • ||

 

 


 

 

데이터 타입

 

아래 목록은 변수의 데이터 타입으로 사용할 수 있는 것들이다.

  • bool: 불리언 표현, (예) True, False, 1, 0, yes, no
  • char: 문자 하나 (예) 'a', 'Z', '?'
  • string: 문자열
  • int: 특정 크기 또는 특정 비트까지의 정수 (예) 5, 28, -3, 0
  • long: 더 큰 크기의 정수
  • float: 부동소수점을 갖는 실수 (예) 3.14, 0.0, -28.56
  • double: 부동소수점을 포함한 더 큰 실수

* int는 대략 40억까지 셀 수 있기 때문에 40억 게 이상의 데이터를 가진 일부 거대 기업과 같은 상황이 아닌 일반 사용자들은 대부분 정수에 int를 사용한다. 거대 기업들은 더 큰 크기의 정수인 long을 사용한다. 

 

 

 

 

CS50 라이브러리 내의 get 함수

CS50 라이브러리는 위와 같은 데이터 타입을 입력값으로 받을 수 있는 아래와 같은 함수들을 포함한다.

 

  • get_char
  • get_double
  • get_float
  • get_int
  • get_long
  • get_string

 

 

 

형식 지정자

printf 함수에서는 각 데이터 타입을 위한 형식 지정자를 사용할 수 있다.

 

  • %c: char
  • %f: float, double
  • %i: int
  • %li: long
  • %s: string

 

 

 

기타 연산자 및 주석

그 외에도 아래 목록과 같이 다양한 수학 연산자, 논리 연산자, 주석 등이 기호로 정의되어 있다.

  • +:  더하기
  • -: 빼기
  • *: 곱하기
  • /: 나누기
  • %: 나머지
  • &&: 그리고
  • ||: 또는
  • //: 주석

 

 

 


 

연습해보기

 

1. 정수 출력하기

타입이 정수 int이기 때문에 형식 지정자 % i를 쓴다.

 

# include <cs50.h>
# include <stdio.h>

int main(void)
{
    int age = get_int("what's your age?\n");
    int days = age * 365;
    printf("Your are at least %i days old.\n", days);
}

 

 

2. 실수 출력하기

 

float 실수를 출력함에 따라 % f를 써준다. %. 2f는 소수점 2번째 자리까지 나오게 한다. 

 

#include <cs50.h>
#include <stdio.h>

int main(void)
{
    float price = get_float ("What's the price?\n");
    printf("Your total is %.2f.\n", price*1.0625);
}

 

 

 

 

3. 짝수인지 홀수인지 알려주는 코드 짜기

get_int()를 통해 정수만을 받아서 n에 저장해준다. 

 

#include <cs50.h>
#include <stdio.h>

int main(void)
{
    int n = get_int("n: ");

    if (n % 2 == 0)
    {
        printf("even\n");
    }
    else
    {
        printf("odd\n")
    }
}

 

 

 


 

생각해보기

 

#include 는 무엇인가?

 

CS50 수업을 위해 만들어진 라이브러리이다. CS50 수업에서는 우리가 좀 더 쉽게 코딩을 짤 수 있게 CS50 라이브러리 안에 여러 함수(get_int, get_double, get_float 등등)를 만들어 둔 것으로 sandbox.cs50.io 가 아닌 Visual Studio 같은 곳에서는 사용할 수 없다.  표준 라이브러리에서는 위와 같은 기능이 없기 때문에 이 부분을 알 고 있으면 좋겠다.

 

get_int와 같은 함수를 강의 예제를 통해 쓰면서 참 신기하다고 생각했는데 이게 이 수업을 위해 만들어진 라이브러리였다니.. 표준화가 안되어있다는데 표준화 시켜주면 어떠한 문제가 생기는건가? 그렇다면 VS code에 설치하면 사용할 수 있는가? 에 대한 궁금증이 들어 찾아봤는데 가능 한 것을 확인했다.  > 링크 통해 확인

 



 

 

 

 


Reference : CS50



반응형