강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

차희원님의 프로필 이미지
차희원

작성한 질문수

연산자 파트 합격 불합격 판단하기 문제 코드

작성

·

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 변수가 불필요하므로 코드가 간결해집니다.

차희원님의 프로필 이미지
차희원

작성한 질문수

질문하기