연산자

강효림·2022년 7월 17일
0

혼공C

목록 보기
4/8

연산명령을 하려면 연산자와 피연산자가 필요합니다.
연산자는 +, - , * 등과 같은 것이고 피연산자는 상수, 변수, 수식을 사용합니다.

피연산자가 하나라면 단항연산자
피연산자가 두개라면 이항연산자
피연산자가 세개라면 삼항연산자 입니다.

산술연산자

+(더하기), -(빼기), *(곱하기), /(나누기), %(나머지)
이렇게 다섯가지가 있습니다.

나누기연산자와 나머지연산자

나눗셈연산을 할 때 실수는 double, 정수는 int를 값에 따라 사용합니다.
나머지 연산자는 피연산자를 반드시 정수만을 사용합니다.

대입연산자

= 이것 딱 한가지 있습니다.
수식의 결과를 변수에 저장하는 역할을 합니다.

증감연산자

a=a+1; 을 a++로 바꿀 수 있습니다.
둘의 결과값이 같기 때문입니다.

변수에 값을 1씩 증가하거나 감소시킬 때 사용합니다.
변수자리에 상수를 넣어 증감연산자를 사용할 수 없습니다.

전위표기와 후위표기

증감연산자가 변수 앞에 있으면 전위표기, 변수 뒤에 있으면 후위표기입니다.
전위표기는 식 연산 전에 1을 증감하는 것이고
후위표기는 식 연산 후에 1을 증감하는 것입니다. 즉, 가장 마지막에 계산합니다.

주의!!
하나의 수식에 같은 변수가 두번 이상 들어갔을 때 그 변수에 증감연산자를 사용해서는 안됩니다.

관계연산자

대소관계는 <, >, <=, >=
동등관계는 ==(같다), !=(같지않다)
거짓은 0으로 참은 1로 표현됩니다.

논리연산자

&&(and), ||(or), !(not) 세가지입니다.
&&은 논리곱 연산자로 2개의 피연산자가 모두 참일 때만 참이 됩니다.
||은 논리합 연산자로 피연산자 둘 중 하나라도 참이면 참입니다.
!은 논리부정 연산자로 피연산자 하나를 사용하여 참과 거짓을 바꿀 때 사용합니다.

숏 서킷 룰

&&와 ||에 해당합니다.
&&일 경우 앞의 피연산자가 거짓일 때 뒤에는 볼 필요없이 거짓입니다.
||일 경우 앞의 피연산자가 참일 때 뒤는 볼 필요없이 참입니다.

숏 서킷 룰을 사용하면 실행속도가 빨라지나 예상치 못한 결과를 낳을 수 있으니 주의해서 사용해야 합니다.

확인문제

01

Q : 빈칸을 채우시오.

A :

소수점 이하 한자리까지만 출력해야 하니 %.1f로 했고
피연산자가 double이기 때문에 %f로 출력했다.

02

Q : 점수입력 후 평균을 출력하는 프로그램을 작성하시오.

A :


scanf를 사용해서 점수를 입력받고 tot변수에 합을 저장한다.
avg변수에 평균값을 구하고 출력할 때는 소수 첫째 자리 까지니까 %.1f로 한다.

03

Q : 전체학점과 평점을 계산하여 신청학점이 10이상이고 평균이 4.0을 넘는경우 1을 출력하고, 그렇지 않으면 0을 출력하는 프로그램을 작성하시오.

국어-3학점-3.8
영어-5학점-4.4
구학-4학점-3.9

A :

값의 종류에 맞게 자료형을 써주고 초기화를 시켜줍니다.
조건은 '~이고' 라서 and연산자를 사용하고, 조건마다 괄호로 묶어줍니다.

형 변환 연산자

형 변환 연산자는 일시적으로 값을 실수로 혹은 정수로 바꾸고 싶을 때 사용한다.

(자료형)피연산자

sizeof 연산자

sizeof연산자는 피연산자를 하나만 사용할 수 있고 피연산자의 크기를 바이트단위로 계산해서 알려준다.
이때 피연산자는 변수, 상수, 자료형, 수식 등이 올 수 있다.

sizeof(피연산자)

복합대입 연산자

연산결과를 다시 피연산자에 저장하는 것이다.
산술 복한대입 연산자로는 +=, -=, *=, /=, %= 이렇게 다섯가지가 있다.

  • 오른쪽 항 계산 후에 복합대입 연산자를 가장 마지막에 계산한다.
  • 왼쪽에는 반드시 변수가 와야한다.

콤마 연산자

말 그대로 ' , ' 콤마를 쓰는연산자다.
한번에 여러수식을 나열할 때 사용한다.

대입연산자와 같이 사용할 때는 반드시 괄호를 사용해야 한다.

조건연산자

유일한 삼항연산자.
첫번째 피연산자가 참이면 두번째 피연산자가 결과, 거짓이라면 세번째 피연산자가 결과가 된다.

(a>b) ? a: b

식을 간락히하지만 가독성이 떨어질 가능성이 있다.

비트연산자

논리 연산하는 &, |, ^같은 비트 논리 연산자, 비트들을 좌우로 움직이는 <<,>>같은 비트이동 연산자가 있다.
정수에만 사용 가능!

&
두 비트가 모두 1일경우 1
|
두 비트 중 하나라도 1이면 1
^
두 비트가 서로 다른 경우 1
<<
왼쪽으로 이동
'>>'
오른쪽으로 이동
비트이동연산자에서 비워진 부분은 0으로 채우는데 음수일때는 1로 채운다.

01

Q : short형과 long형의 자료형을 비교하여 크기가 큰 자료형이 무엇인지 출력하시오.

A :

sizeof 함수를 사용해서 short와 long의 바이트수를 구한 것을 res변수에 저장한다.
그리고 문자열로 출력해야하니 %s를 써주고 삼항연산자를 사용해서 조건(res==1)을 써준다. 뒤에 조건에 맞게 출력해야할 문자들 까지 써주면 된다.

02

Q : 좌석이 70, 입장객이 65일 때 입장률을 출력하시오.

A :


int였던 audience와 seats를 double로 각각 형변환 시켜준다.
그리고 확률이니까 100을 곱해주고 소수 첫째 자리 까지 출력하기 위해 %.1lf로 한다.

03

Q : 3.76 시간은 몇시간 몇분 몇초인지 출력하시오.

A :


정수부분마 골라내기위해 int로 형변환을 했고, 분과 초를 구하기 위해서 time에서 hour를 빼고 hour에 60을 곱해 분단위로 환산한다. 이 과정을 초까지 해준다.
그리고 int니까 %d로 출력해주면 시간이 나온다.

0개의 댓글