[CS50] C 언어 - 자료형과 연산자

TIL

데이터 타입

C에서는 다양한 데이터 타입을 제공한다. 각 타입에 맞는 형식 지정자로 적절히 출력하고, 다양한 연산자로 계산하거나 조건문을 작성할 수 있다.

주요 데이터 타입

  • bool: 불리언 (True, False, 1, 0)
  • char: 문자 하나 ('a', 'Z', '?')
  • string: 문자열
  • int: 정수 (약 40억까지)
  • long: 더 큰 정수
  • float: 실수
  • double: 더 큰 실수

int는 약 40억까지 셀 수 있어 대부분의 경우 충분하다.

 

형식 지정자

printf함수에서 각 데이터 타입을 출력할 때 사용한다.

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

 

연산자

수학 연산자

  • +: 더하기
  • -: 뺴기
  • *: 곱하기
  • /: 나누기
  • %: 나머지

 

논리 연산자

  • &&: 그리고
  • ||: 또는

 

주석

  • //: 한 줄 주석

 

실습 예제

정수 다루기

사용자 나이를 입력받아 며칠을 살았는지 계산해보자.

#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 함수로 정수를 입력받아 age 변수에 저장한다.
  • days 변수에 age * 365를 계산하여 저장하고, %i로 정수를 출력한다.

 

코드를 더 간단하게 작성할 수도 있다.

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

 

더 극단적으로 줄일 수도 있다.

printf("You are at least %i days old.\n", get_int("What's your age?\n") * 365);

하지만 이 코드는 가독성이 떨어진다. 읽기 편하고 이해하기 쉬운 코드가 더 선호된다.

 

실수 다루기

물건 가격에 부가세 10%를 포함한 총액을 계산해보자.

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

현재는 결과가 11000.000000으로 소수점 6자리까지 나와 보기 좋지 않다.

 

소수점 자릿수를 지정하려면 .숫자를 추가하면 된다.

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

%.2f로 소수점 2자리까지만 출력할 수 있다.

 

조건문

짝수인지 홀수인지 판별하는 프로그램을 작성해보자.

#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");
    }
}
  • n을 2로 나눈 나머지가 0이면 짝수, 그렇지 않으면 홀수다.

 

주석

C에서는 //로 주석을 작성한다.

// 주석입니다.

 

주석은 코드가 무슨 일을 하는지 설명한다.

처음 보는 사람뿐만 아니라 자신도 시간이 지나면 코드를 잊어버리기 때문에, 주석을 잘 작성하는 습관이 중요하다.

 

연습 문제

Q. 홀짝 판별 코드에 주석을 달아보자

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

// 홀짝 구별하기
int main(void) {
  // 정수 n 입력받기
  int n = get_int("n: ");

  // n이 홀수면 "odd" 출력
  if (n % 2 == 0) {
    printf("even\n");
  } else {
    // n이 짝수면 "even" 출력
    printf("odd\n");
  }
}

'TIL' 카테고리의 다른 글

[CS50] 하드웨어의 한계와 오버플로우  (0) 2025.11.05
[CS50] C 언어 - 사용자 정의 함수와 중첩루프  (0) 2025.11.05
[CS50] C 언어 - 조건문과 루프  (0) 2025.11.05
[CS50] C 언어 - 문자열  (0) 2025.11.05
[CS50] C 기초  (0) 2025.11.05
'TIL' 카테고리의 다른 글
  • [CS50] 하드웨어의 한계와 오버플로우
  • [CS50] C 언어 - 사용자 정의 함수와 중첩루프
  • [CS50] C 언어 - 조건문과 루프
  • [CS50] C 언어 - 문자열
고견
고견
개발 자국 남기기
  • 고견
    개발자국
    고견
  • 전체
    오늘
    어제
    • 분류 전체보기 (157) N
      • Frontend (29)
        • Next.js (16)
        • JavaScript (7)
      • CS (19) N
        • 자료구조 (9)
        • 알고리즘 (5)
        • 운영체제 (4) N
        • 네트워크 (1) N
      • TIL (93)
      • Dev Log (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    emotion diary
    generic
    ai 감성 일기장
    알고리즘
    react
    App Router
    Pages Router
    typescript
    javascript
    함수 타입
    인터페이스
    앱 라우터
    useState
    트러블 슈팅
    클래스
    자료구조
    배열
    memory
    cs50
    페이지 라우터
    C
    Next.js
    CS
    바닐라 자바스크립트
    Trouble Shooting
    제네릭
    Spa
    타입 좁히기
    문자열
    algorithm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
고견
[CS50] C 언어 - 자료형과 연산자
상단으로

티스토리툴바