논리연산자 심사문제 관련 질문드립니다.
, 박 정민님이 작성#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int num1, num2;
scanf("%d %d", &num1, &num2);
if (num1 && num2==1)
printf("%s\n", "참");
else
printf("%s\n", "거짓");
if (num1 || num2==1)
printf("%s\n", "참");
else
printf("%s\n", "거짓");
if (!num1==1)
printf("%s\n", "참");
else
printf("%s\n", "거짓");
printf("%d", num1 && num2);
return 0;
}
심사문제를 풀던중, 문제가 생겼습니다. num1&&num2의 값이 1이 나옴에도 거짓으로 출력이되고, 0을 num1에 할당하면 num2의 값이 0이 아닌데도 or 연산의 결과인 두번째출력이 거짓으로 나옵니다. 그래서 연산자의 연산결과를 프린트해봐도, 1로 나오는데 문제가 뭘까요 if에 세미콜론을 붙인것도 아닌데..
Re: 논리연산자 심사문제 관련 질문드립니다.
, 도장_ 관리자님이 작성예제 코드의 범위를 벗어나서 코드를 작성하고 테스트하고 있습니다.
연산자 우선순위 등을 학습하는 건 나중입니다. 천천히 학습하길 권합니다.
if (num1 && num2 == 1)
이렇게 작성하면 안 됩니다.
(num1 && num2) == 1
인지
num1 && (num2 == 1)
인지 명확하게 해야 합니다.
연산자 우선순위는 UNIT 25에서 학습합니다.