데이터 타입
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 |
