이게 왜 틀렸나요?
, 홍 근하님이 작성scanf("%d %s", number, name);
...else if (4 <= number <= 7)
{
sprintf(result, "%dth %s", number, name);
}
(도장_ 관리자님이 수정함 - 원문 제출일: 2020년 9월 15일, 화요일, 오후 9:51)
Re: 이게 왜 틀렸나요?
, 도장_ 관리자님이 작성else if (4 <= number <= 7)
C 언어는 이런 문법을 지원하지 않습니다.
다른 언어 중에는 이런 문법을 지원하는 언어가 있습니다.
Unit 25. 연산자 우선순위에 따라 우연히도 처리되는 것처럼 보일 뿐입니다.
number가 3이면
4 < = number가 처리되어 4 < = 3이므로 결괏값는 0이 되고
0 <= 7이 되어 이는 참이므로 결괏값이 1이 됩니다.
int number = 3;
printf("%d\n", (4 <= number <= 7));
두 번째는
이게 왜 틀린 게 아니라 잘못된 코드이기 때문에 틀린 겁니다.
UNIT 43.6 심사문제의 통과율은 86.98%입니다. 올바른 코드를 작성하면 충분히 통과할 수 있다는 뜻이고, 그만큼 심사문제의 심사에 오류가 없는지 충분히 검증되었다는 뜻이기도 합니다.
Visual Studio에서는 문의한 코드가 컴파일도 되지 않습니다.
하단에 표시되는 컴파일 에러를 잘 살펴보면 문제 해결의 힌트가 있습니다.
warning C4477: 'scanf' : 서식 문자열 '%d'에 'int *' 형식의 인수가 필요하지만 variadic 인수 1의 형식이 'int'입니다.