문제
연산자(Operator)는 파이썬의 연산자와 크게 다르지 않지만 아래 차이점이 존재한다.
C언어는 파이썬과 다르게
//와**연산자가 존재하지 않는다.전치/후치 증감연산자가 존재한다. (1을 증가하거나 감소시키는 연산이다)
int x = 10;
int y = x++; // 후치 증가 연산자: 해당 줄의 코드를 실행시키고 변수의 값을 1 증가시킨다.
printf("x = %d, y = %d \n", x, y); // x = 11, y = 10
int a = 10;
int b = ++a; // 전치 증가 연산자: 변수의 값을 1 증가시키고 해당 줄의 코드를 실행시킨다.
printf("a = %d, b = %d \n", x, y); // a = 11, b = 11and는
&&, or은||, not은!로 작성한다.a < b < c와 같은 표현 대신a < b && b < c라고 작성한다.
형변환(Type Casting)
변수의 자료형을 바꾸는 것은 불가능하지만, 계산할 때 그 값을 순간적으로 변환해 사용하는 것은 가능하다.
double a = 3.6, b= 4.7;
double c = a + b; // c = 8.3
double d = int(a) + int(b); // d = 7.0(자료형)변수명혹은자료형(변수명)중 하나의 형태로 사용이 가능하다.단,
(long long)변수명과 같이 자료형 이름에 공백이 포함되는 경우 후자의 사용법만 가능하다.long long은-2^{63} 이상2^{63}-1 이하 범위의 정수를 저장할 수 있는 자료형이다.
조건문(If Statement)
C언어와 파이썬의 조건문은 사실상 동일한 문법 체계를 갖고 있다.
다만,
elif대신else if라고 적어야하며, 콜론(:)과 들여쓰기로 조건문 안에 들어갈 코드인지 분류하는 대신 중괄호{}를 이용한다.
if (조건) {
코드
}
else if (조건) {
코드
}
else {
코드
}파이썬의 참일때
if 조건 else 거짓일때문법은 C언어에서조건 ? 참일때 : 거짓일때로 사용 가능하다.
int A = 10, B = 20;
int C = A if A < B else B;또 다른 차이로는 match-case 대신
switch-case를 사용한다. (match-case: Python 3.10부터 사용 가능한 문법)
switch (변수명) {
case 값1:
코드1
break;
case 값2:
코드2
break;
default:
코드3
}switch에 넣을 수 있는 변수는 오직 정수와 문자만 가능하다. 실수나 문자열은 넣을 수 없다.
[연습 문제]
네 정수 ODD"를 출력하고, 아니라면 "EVEN"을 출력하는 프로그램을 작성하시오.
입력
첫 줄에 네 정수
출력
첫 줄에 네 정수 중 최댓값이 홀수라면 "ODD"를 출력하고, 아니라면 "EVEN"을 출력한다.
예제 #1
1 2 3 4
EVEN
예제 #2
10 7 31 6
ODD