C · 연산자·연습 문제

XOR 교환

문제 설명PROBLEM

XOR 교환

문제

서로 다른 두 int 객체의 값을 임시 변수 없이 XOR 복합 대입으로 교환하세요.

구현할 함수

void xor_swap(int *left, int *right)

입력

정수 left와 right가 주어집니다.

입력 파싱과 결과 출력은 숨겨진 I/O 어댑터가 자동으로 처리합니다. 에디터에는 요구된 함수 또는 메서드 구현만 작성하세요.

출력

교환된 두 값을 출력합니다.

구현 조건

  • 계산 로직은 반드시 xor_swap 함수 안에 구현하세요.
  • *left ^= *right, *right ^= *left, *left ^= *right 순서를 사용하세요.

공개 테스트

아래 테스트를 각각 독립된 프로세스로 실행합니다. 입력과 기대 출력은 실제 채점 순서와 같습니다.

#이름InputExpected output
1대표7 33 7
20 포함0 55 0
3같은 값의 서로 다른 변수42 4242 42
개념 노트와 실수 포인트

연산자

  • 정수 나눗셈 /: 정수끼리면 몫만 남고 소수점은 버림. 7/2 == 3. 실수가 필요하면 한쪽을 실수로 → 7/2.0.
  • 나머지 %: 정수 전용.
  • 증감 a++(후위: 쓰고 증가) / ++a(전위: 증가 후 사용).
  • ⚠️ 한 식에서 같은 변수를 두 번 증감(f(a++, ++a))하면 결과가 정의되지 않음(컴파일러마다 다름). 문장을 나눠 추적하세요.
  • 우선순위: * / %+ - → 비교 → 비트(& ^ |) → && ||. 헷갈리면 괄호!
  • 비트: &AND |OR ^XOR ~NOT, <<n=×2ⁿ, >>n=÷2ⁿ.
  • 형변환 (int)3.9 == 3 (반올림 아님, 버림).