c++언어 초보 질문 있습니다.

조회수 601회

나누기 부분에서 10과 4처럼 나누어 떨어지지 않는 숫자들을 입력해도 소수점이 제대로 나오지 않습니다. 어떻게 해야 소수점이 나오게 할 수 있을까요 ㅠㅠ

    int a,b,c;
    printf("계산할 숫자를 입력해주세요.\n");
    scanf("%d %d",&a,&b);
    printf("더하기=1 빼기=2 곱하기=3 나누기=4\n");
    scanf("%d",&c);
    if (c==1)
        printf("%.3f",(a+b)*1.0);
    else if (c==2)
        printf("%.3f",(a-b)*1.0);
    else if (c==3)
        printf("%.3f",(a*b)*1.0);
    else 
        printf("%.3f",(a/b)*1.0);
    return 0;

아래는 실행 화면입니다이미지

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 두 정수간의 연산 결과는 정수가 됩니다.

    (double)a / b처럼 a의 값을 실수로 변환하여 b로 나누어주면 실수/정수 이므로 결과는 실수가 됩니다.

    아래 코드 참고하세요.

    #include <stdio.h>
    
    int main()
    {
        int a, b, c;
        printf("계산할 숫자를 입력해주세요.\n");
        scanf("%d %d", &a, &b);
        printf("더하기=1 빼기=2 곱하기=3 나누기=4\n");
        scanf("%d", &c);
        if (c == 1)
            printf("%.3f", (double)a + b);
        else if (c == 2)
            printf("%.3f", (double)a - b);
        else if (c == 3)
            printf("%.3f", (double)a * b);
        else
            printf("%.3f", (double)a / b);
        return 0;
    }
    
    • 결과

    이미지

    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)