아래 목록은 변수의 데이터 타입으로 사용할 수 있는 것들이다.
int는 대략 40억까지 셀 수 있기 때문에 40억개 이상의 데이터를 가진 일부 거대 기업과 같은 상황이 아닌 일반 사용자들은 대부분 정수에 int를 사용한다.
CS50 라이브러리는 위와 같은 데이터 타입을 입력값으로 받을 수 있는 아래와 같은 함수들을 포함한다.
(CS50 라이브러리에서 사용되는 함수임)
printf 함수에서는 각 데이터 타입을 위한 형식 지정자를 사용할 수 있다.
그 외에도 아래 목록과 같이 다양한 수학 연산자, 논리 연산자, 주석 등이 기호로 정의되어 있다.
# 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번째 자리까지 나오게 할 수 있다.
#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