C

[C] C언어 코딩 도장 21.9 심사문제: 논리 연산자 사용하기

Lee Jaeyoon2 2022. 4. 26. 09:43

표준 입력으로 두 정수가 입력됩니다. 다음 조건대로 입력된 두 정수를 검사하여 결과를 출력하는 프로그램을 만드세요(scanf 함수 호출

전에 문자열을 출력하면 안 됩니다).

  1. 두 정수를 AND 연산했을 때 참이면 "참", 거짓이면 "거짓"
  2. 두 정수를 OR 연산했을 때 참이면 "참", 거짓이면 "거짓"
  3. 첫 번째 정수를 NOT 연산했을 때 참이면 "참", 거짓이면 "거짓"

표준 입력

1 0

 

표준 출력

거짓
참
거짓

 

정답

#include <stdio.h>

int main()
{
    int num1, num2;

    scanf("%d %d", &num1, &num2);

    if (num1 && num2)
        printf("참\n");
    else
        printf("거짓\n");

    if (num1 || num2)
        printf("참\n");
    else
        printf("거짓\n");

    if (!num1 == 1)
        printf("참\n");
    else
        printf("거짓\n");

    return 0;
}

 

풀이

두 정수 입력받을 변수 num1, num2를 선언하여 scanf 함수로 입력받은 뒤, 조건을 따라야 하는데, 먼저, 1번 조건이 AND 연산했을 때

참이면 "참", 거짓이면 "거짓"이어야 하므로 조건식을 num1 && num2로 만들어주고 참이면 "참"이 출력되게 만들고 거짓은 else로

"거짓"이 출력되게 만들어준다. 다음, 2번 조건은 OR 연산했을 때 참이면 "참", 거짓이면 "거짓"이어야 하므로 조건식을 num1 || num1로 만들어준 뒤 참이면 "참"이 출력되게 만들고 거짓은 else로 "거짓"이 출력되게 만든다. 마지막으로 3번 조건 첫 번째 정수를 NOT 연산했을 때 참이면 "참", 거짓이면 "거짓"을 출력하도록 조건식을 !num1 == 1, 즉 num1을 NOT 연산한 것이 참이라면이라는 조건식을 만들어주고 참이면 "참"을 출력되게 만들고 거짓은 else로 "거짓"이 출력되게 만들어준다.