문제 왜 오류나는지 알려주세요
-
1.문제 체중과 키 bmi값이 20.0이상 25.0미만이면"표준입니다" 그렇지 않으면 "체중관리가 필요합니다"출력
1)bmi 몸무게를 키의 제곱으로 나누어 구합니다
2)키는 cm로 입력하고 계산은 m단위로 계산합니다.https://goor.me/VLhoo3qdKqhSDkfn9
일단 실행은 되긴하는데 몸무게 66 185.6을 입력하면 체중관리가 필요합니다 가 떠야하는데 표준입니다 가뜹니다 -
@임동우 감사합니다
-
그리고 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)으로 바꾸셔서 확인해 보시겠어요? -
ch 변수가 char 자료형으로 선언되어 있는 것 같습니다.
char 자료형은 하나의 문자만 저장할 수 있습니다.
C언어에서는 문자열을 저장할 수 있는 전용 자료형이 없는 것으로 알고 있습니다.
결과 출력 부분을 if 조건문으로 바꾸어서 구현해보시는 것도 좋을 것 같습니다. -
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;
}
이런식으로 코드를 짜면 변수의 자료형 선언을 잘못했다고 오류가 뜨는거 같은데 이유좀 알려주실수 있나요??