• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

범위 질문드립니다!

20.03.24 00:15 작성 조회수 207

0

#include<stdio.h>

int main(){

int height;

scanf("%d",&height);

if(120<=height<=150){

printf("YES");

}

else{

printf("NO");

}

return 0;

제가 미리 짜본 코드였는데 120<=height<=150이 if문 조건식에 들어오지 못하는 이유는 무엇인가요? 제가 무언가를 착각하고 있는걸까요 ㅠㅠ 

코드 결과는 어떤 수를 집어넣어도 YES가 출력되었었습니다..

답변 1

답변을 작성해보세요.

0

C언어는 친절한 언어가 아닙니다.  if(120<=height<=150)과 같은 구문을 수학처럼 120부터 150사이면 참이다. 이렇게 친절하게 해석해주지 않습니다. 위 구문이 해석되는 형태는 120<=height를 먼저 연산해 참이면 1, 거짓이면 0의 결과를 얻습니다.

그 결과값(0또는 1)과 

결과값<=150의 연산을 합니다. 그래서 항상 참이 되는 것입니다.