문제 왜 오류나는지 알려주세요


  • Level 11

    1.문제 체중과 키 bmi값이 20.0이상 25.0미만이면"표준입니다" 그렇지 않으면 "체중관리가 필요합니다"출력
    1)bmi 몸무게를 키의 제곱으로 나누어 구합니다
    2)키는 cm로 입력하고 계산은 m단위로 계산합니다.

    https://goor.me/VLhoo3qdKqhSDkfn9
    일단 실행은 되긴하는데 몸무게 66 185.6을 입력하면 체중관리가 필요합니다 가 떠야하는데 표준입니다 가뜹니다

  • Level 11

    @임동우 감사합니다

  • Level 3

    그리고 C/C++에서는 A 이상 B 미만인지를 확인하기 위해서 2번의 비교 연산이 필요합니다.
    올려주신 코드의 (20.0 <= b < 25.0) 부분에서 버그(?)가 발생한 입력을 예로 들 때 b = 약 19.16이 나오지만,
    이 코드에서는 ((20.0 <= 19.16) < 25.0)으로 계산되어 (0 < 25.0) = 참으로 계산되어 올바르지 못한 답이 나오는 것 같습니다.
    (20.0 <= b < 25.0) 부분을 (20.0 <= b && b < 25.0)으로 바꾸셔서 확인해 보시겠어요?

  • Level 3

    ch 변수가 char 자료형으로 선언되어 있는 것 같습니다.
    char 자료형은 하나의 문자만 저장할 수 있습니다.
    C언어에서는 문자열을 저장할 수 있는 전용 자료형이 없는 것으로 알고 있습니다.
    결과 출력 부분을 if 조건문으로 바꾸어서 구현해보시는 것도 좋을 것 같습니다.

  • Level 11

    3번째 궁금하는 상황

    #include<stdio.h>
    int main(void)
    {
    int weight;
    double height, b;
    char ch;

    printf("몸무게(kg)와 키(cm) 입력 :");
    scanf("%d%lf", &weight, &height);
    
    height *= 0.01;
    b = (double)weight / (height * height);
    ch = (20.0 <= b <25.0) ? "표준입니다" : "체중관리가 필요합니다";
        printf("%s\n",ch);
    return 0;
    

    }
    이런식으로 코드를 짜면 변수의 자료형 선언을 잘못했다고 오류가 뜨는거 같은데 이유좀 알려주실수 있나요??