티스토리 뷰
주어진 학습목표를 이루기 위해서 이해를 우선으로 두고 공부할 것이다.
들어가기 전에 학습목표, 핵심 단어는 강의 자료를 가져올 것이고 그 이후로는 내가 이해하고 공부한 부분을 직접 적고, 마지막에는 배운 점이나 느낀 점을 적도록 하겠다.
들어가기 전에
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
'CS (Computer science)' 카테고리의 다른 글
[CS50 | 모두를 위한 컴퓨터 과학] C - 하드웨어의 한계 (0) | 2022.04.09 |
---|---|
[CS50 | 모두를 위한 컴퓨터 과학] C - 사용자 정의 함수, 중첩 루프 (0) | 2022.04.08 |
[CS50 | 모두를 위한 컴퓨터 과학] C - 조건문과 루프 (0) | 2022.04.06 |
[CS50 | 모두를 위한 컴퓨터 과학] C - 문자열 (0) | 2022.04.05 |
[CS50 | 모두를 위한 컴퓨터 과학] C - C기초 (0) | 2022.04.02 |
- Total
- Today
- Yesterday
- html
- GIT
- React
- 리액트
- 자바스크립트
- 자바스크립트알고리즘
- 항해99
- cs50
- 타입스크립트
- 네트워크
- 실전프로젝트
- 백준
- github
- 리액트네이티브
- 클로저
- 자바스크립트 클로저
- 프로그래머스 자바스크립트
- 프로그래머스 베스트앨범 자바스크립트
- python
- 모두를위한컴퓨터과학
- 자바스크립트 비동기 처리
- network
- 무한스크롤
- 모두를 위한 컴퓨터 과학
- React Query
- javascript
- css
- 알고리즘자바스크립트
- reactquery
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |