스터디/CS50

하버드 CS50 2장 4) 자료형, 형식 지정자, 연산자

공대생철이 2023. 1. 15. 20:05
728x90

이제부터 급격하게 배우는 양이 많아진다.

 

 

자료형은 타입이라고도 불리는 녀석이다. 숫자, 문자, 불리언 이런 애들을 의미하는 것이다.

 

자세한 종류는 다음과 같다.

조금 어색하게 느껴졌던 타입은 long이었다. 

정수의 범위에 따라서 다른 타입이 존재하는 것이 조금 어색하게 다가왔다.

(하지만 실제로 쓸 일이 많을까라는 생각이 들기도 한다.)

 

이전에 string을 받아서 %s에 넣어줬었는데

데이터 타입에 따라서 형식지정자를 다르게 넣어주어야 한다.

 

데이터 타입에 대해서만 익숙해진다면 그리 어렵지 않게 체득할 수 있을 것 같다.

이건 타입별로 입력값을 받아올 수 있는 prompt를 띄워 값을 가져오는 함수들인데 마찬가지로 타입에 대한 숙지가 있으면 그리 어렵지 않게 이해할 수 있다.

 

이렇게 다양한 타입과 그에 따라 파생되는 코드들이 있다.

기본적인 연산자들인데 사칙연산은 당연히 다 알 거고

나머지를 %로 쓴다는 건 그리고 and or 연산자가 저렇게 있구나~하는 정도만 되도 충분히 코드를 많이 쳐보면 알아서 숙지할 수 있을 것 같다.

int 타입인 age의 변수를 받아와서 365를 곱해준 다음 %i 자리에 대입시켜 print를 하는 코드이다.  

 

만약에 이 코드를 줄여보면 어떻게 될까?

한 줄짜리 printf가 되었지만 솔직히 단박에 파악하기 어렵다.

코드의 가독성을 어떻게 고려할 것인지 코드를 작성할 때마다 계속 고민해야하는 것은 프로그래머의 평생 숙제일 듯하다.

무조건 줄 수가 적다고 해서 좋은 코드도 아니고

다 풀어서 디테일하게 작성하는 것도 좋은 코드도 아니기에

나만의 효율의 중간지점을 잘 설정해야될 것 같다.

물건의 가격을 받아 부가가치세를 붙여서 계산하는 코드이다. 

 

100을 입력해보면 저렇게 엄청 긴 소수가 나온다.

소수점 뒷자리 0 네개는 별 의미가 없기 때문에 얘네들을 소수점 둘째 자리에서 잘라주고 싶다.

%f 사이에 .2를 넣어주어 %.2f라고 작성하면 된다.

소수점 셋째 자리에서 자르고 싶으면 .3을 하면 된다.

 

이번엔 나머지 연산자를 활용한 홀짝 판별기이다.

n의 나머지가 0이라면 even, 아니라면 odd를 출력하는 간단한 코드다.

정수형을 받아서 2로 나눴을 때 0인지만 확인하면 그 반대의 경우는 자동으로 나머지가 1인 경우에 else if로 작성하지 않고 그냥 else로만 마무리해도 충분하다.

 


오늘 배운 것

- C에서 다양한 type과 각각의 type에 해당하는 문법

- float에서 소수점의 자릿수를 지정해주는 문법

728x90