애초에 math.h 해더의 sqrt함수는 double형에 대해 계산되는 겁니다. int형을 이 함수에 넣어서 아마 일부 예제에 계산 오차가 생긴 것 같아요.
저 해더의 함수를 사용할 경우에는 정수가 입력된다고 해도 모든 좌표와 거리 값을 전부 double형으로 입력받아서 계산하면 문제 없을 거에요.
모든 int를 double로만 바꾸면 될겁니다.
22938번 - 백발백준하는 명사수
애초에 math.h 해더의 sqrt함수는 double형에 대해 계산되는 겁니다. int형을 이 함수에 넣어서 아마 일부 예제에 계산 오차가 생긴 것 같아요.
저 해더의 함수를 사용할 경우에는 정수가 입력된다고 해도 모든 좌표와 거리 값을 전부 double형으로 입력받아서 계산하면 문제 없을 거에요.
모든 int를 double로만 바꾸면 될겁니다.
scanf("%lf");
했나요...?
함수 return 앞에 (int) 삭제하고요...
다하셨으면 오류 안 날텐데...
캐스트 연산자 말고 그냥 전부 자료형 자체를 double로 바꾸세요 int형 쓰지 말고요
댓글을 작성하려면 로그인해야 합니다.
wodus0129 1년 전
다음과 같이 작성했는데 틀렸다고 나와요...파이썬은 이렇게 작성해도 맞는데....
from math import *
def dis(x1, y1, x2, y2): chax = max(x1, x2) - min(x1, x2) chay = max(y1, y2) - min(y1, y2) return int(sqrt(chax * chax + chay * chay))
x1, y1, r1 = map(int, input().split())x2, y2, r2 = map(int, input().split())ret = dis(x1, y1, x2, y2)
if ret >= r1 + r2: print("NO")else: print("YES")
C언어 어디서 틀린건가요?