Computer Science - C언어_자료형, 형식지정자, 연산자

Sangho Moon·2020년 7월 18일
0

Computer Science

목록 보기
8/22
post-thumbnail

1. 데이터 타입

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

  • 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를 사용한다.


2. CS50 라이브러리 내의 get 함수

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

(CS50 라이브러리에서 사용되는 함수임)

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

3. 형식 지정자

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

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

4. 기타 연산자 및 주석

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

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

5. 정수와 실수를 받아서 출력해보기

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

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

get_int라는 정수 값을 받아오는 CS50 라이브러리에 있는 함수를 사용한다.

사용자의 나이는 오른쪽에서 왼쪽으로 복사되어 age라는 변수에 저장된다.

그 변수의 종류는 int 정수이다.

그럼 이 사람의 나이를 일 수로 환산하면 며칠일까?

days라는 정수 변수에서 age에 365를 곱한 수를 저장해준다.

그리고 printf 함수에 이번에는 문자가 아닌 정수이기 때문에 %i로 days의 인자를 받아주고 출력해준다.

이 코드를 좀 더 간단하게 작성해보면

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

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

이전에 days에 age에 365를 곱한 값을 저장했다.

하지만 days 대신 age*365를 넣으면 되기 때문에 days라는 변수는 필요 없다.

여기서 age라는 변수까지 printf에 포함시켜 더 극단적으로 줄일 수 있지만 가독성이 떨어지게 된다.


이번에는 실수(float)를 사용해보자.

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

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

get_float 함수를 사용하여 물건의 가격을 물어보고 가격을 받아 price에 저장해준다.

그런 다음 세금을 포함한 값을 계산해서 출력해보자. (메사추세츠의 부가세는 6.25%)

총액은 실수(float)이므로 %f를 사용해준다.

코드를 실행해서 가격을 30으로 넣어보면 다음과 같이 소수점이 6번째 자리까지 출력된다.

이것을 소수점 2번째 자리까지만 나오게 바꾸려면

 printf("Your total is %.2f\n", price*1.0625);

%f에서 f앞에 '.원하는 자리수'를 넣어 %.2f로 소수점 2번째 자리까지 나오게 할 수 있다.


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

#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");
    }
}

우선 get_int로 사용자에게 정수인 숫자를 받아서 n에 저장한다.

받은 숫자를 if문을 써서 2로 나눴을 때 나머지가 0이면 짝수, 아니면 홀수를 출력하라는 의미이다.



Ref.
Edwith_boost course

profile
Front-end developer

0개의 댓글