[C] example2. 점과 직선 사이의 거리 구하기
C | C++/C

[C] example2. 점과 직선 사이의 거리 구하기

Woon2World :: Programming & Art Life

 

직선 ax+by+c = 0이 점 (x0, y0)를 지날 때, 점과 직선 사이의 거리는 다음과 같습니다.

 

<math.h> 헤더 파일을 포함하면, 제곱근을 구해 float 타입의 값으로 반환하는 함수인 sqrtf를 사용할 수 있습니다.

sqrtf(9)는 3.000000이고, sqrtf(16)은 4.000000입니다.

인자로 식이 들어가도 상관 없으니 sqrtf(3.5*3.5)=3.50000이기도 하죠.

 

위 사실들을 참고하여, 직선과 점이 주어질 때,

점과 직선 사이의 거리를 구하는 프로그램을 작성해주세요.

단, 모든 입출력은 실수값을 입출력하도록 하고, 출력할 때에는 소수점 아래 두 번째 자릿수까지만 출력하도록 해주세요.

소스 이름은 "example2. 점과 직선 사이의 거리 구하기.c"로 하시기 바랍니다.

 

[출력 예시]
직선의 방정식을 "ax+by+c=0" 꼴로 입력해주세요. : 3x+4y+5=0
점의 위치를 "a,b" 꼴로 입력해주세요. : 6,3
점과 직선 사이의 거리는 7.00입니다.
(파랑색은 입력값입니다.)

 

더보기
#include <stdio.h>
#include <math.h>
 
int main()
{
    float a, b, c, x, y;
 
    printf("직선의 방정식을 \"ax+by+c=0\" 꼴로 입력해주세요. : ");
    scanf_s("%fx+%fy+%f=0"&a, &b, &c);
 
    printf("점의 위치를 \"a,b\" 꼴로 입력해주세요. : ");
    scanf_s("%f,%f"&x, &y);
 
    printf("점과 직선 사이의 거리는 %.2f입니다.\n", (a * x + b * y + c) / sqrtf(a * a + b * b));
}
cs