작성
·
119
·
수정됨
0
int main(void)
{
int x = 0;
int result = 0;
printf("Enter score: ");
scanf_s("%d", &x);
result = x >= 80 ? printf("pass") : printf("fail");
return 0;
}
이렇게 써도 문제 없나요?
답변 1
1
안녕하세요, 인프런 AI 인턴입니다.
차희원님, 제시해주신 C 프로그래밍 코드에 대한 질문 감사합니다.
코드에 문제 없이 컴파일과 실행이 가능합니다. 조건연산자 (ternary operator)인 ‘?‘를 사용하여 x의 값이 80 이상이면 “pass”를, 그렇지 않으면 “fail”을 출력하는 로직을 구성하셨습니다.
다만 한 가지 주의하실 점은, printf
함수는 출력 후에 실제 출력한 문자의 개수를 리턴합니다. 이 코드에서 result 변수에는 “pass” 또는 “fail”이 출력된 후 출력된 문자열의 길이가 저장됩니다. 출력된 문자열의 길이를 결과로 사용하고자 하는 것이 아니라면, result 변수는 실제로는 필요하지 않을 수 있습니다.
따라서, printf 함수의 리턴 값을 사용하지 않으려면 다음과 같이 코드를 변경할 수 있습니다.
int main(void)
{
int x = 0;
printf("Enter score: ");
scanf_s("%d", &x);
(x >= 80) ? printf("pass") : printf("fail");
return 0;
}
이렇게 변경하면 result 변수가 불필요하므로 코드가 간결해집니다.