c의 삼항연산자를 이용한 최대최소 연습

조회수 485회

제가 연습하면서 만든 코드입니다!

#include <stdio.h>
int main(void) {
int nMax = 0;
int a, b, c;

scanf("%d, %d, %d", &a, &b, &c);

a > b ? (nMax = a) : (nMax = b);
nMax > c ? nMax : (nMax = c);

printf("MAX: %d\n", nMax);
return 0;

}

안녕하세요! c를 공부하기 시작한 코린이 입니다! 다들 쉬우시겠지만... 저는 이게 왜 잘못된 값이 출력되는지 모르겠어서 질문합니다

최댓값이 나와야 하는데 최솟값이 나와요. 왤까요?

1 답변

  • 삼항 연산자 부분은 문제가 없는데, scanf 함수 부분에 문제가 있네요.

    scanf 함수의 형식화 문자열을 "%d, %d, %d"에서 콤마를 제거하셔야 합니다.

    아래 코드 참고하세요.

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    
    int main(void) {
        int nMax = 0;
        int a, b, c;
    
        scanf("%d %d %d", &a, &b, &c);
    
        a > b ? (nMax = a) : (nMax = b);
        nMax > c ? nMax : (nMax = c);
    
        printf("MAX: %d\n", nMax);
        return 0;
    }
    
    • 결과

    이미지

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 아!!! 그런거였군요!!! 너무 고마워요 ㅠㅠ 다른곳에 에러가 있었던 거였네요! 알 수 없는 사용자 2020.8.24 17:23

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)