WA

sjhsjh8520 Reply 3 years 45 weeks ago
출력값이 자꾸 0이 나오는 이유를 모르겠습니다. 딱히 프로그램 출력에 오류가 발생하지는 않는데 결과값이 0으로 나옵니다.
withcs2 Reply 3 years 45 weeks ago
C언어는 사칙연산과 마찬가지로 괄호 안에 있는 것을 우선 계산하고, +-보다 */를 먼저 계산하며, 우선순위가 같은 경우 왼쪽에 있는 것부터 계산합니다. Vol_y = (y / (x + y)) * Vol_X; 만약 int y=1, int x=1, double Vol_X=300일 때, x+y = 1+1 = 2 (y / (x+y)) = 1/2 = 0 (정수형끼리 나누면 소수점 아래는 버려지고 정수형이 됩니다. (y / (x + y)) * Vol_X = 0*300 = 0 이므로 0이 나오게 됩니다. 정수/실수 계산 시 연산자의 우선순위에 주의하면서 어디서부터 실수형으로 바뀌는지 생각해보신 다음에 코드를 수정해보세요