개인 공부/C언어 공부

C언어 코딩도장 53.6 : 선의 길이 구하기

240 • 사공이 2020. 8. 26. 02:29

문제 : 표준 입력으로 x, y 좌표 4개가 입력되어 Point2D 구조체 배열에 저장됩니다. 여기서 점 4개는 첫 번째 점부터 마지막 점까지 순서대로 이어져 있습니다. 다음 소스 코드를 완성하여 첫 번째 점부터 마지막 점까지 연결된 선의 길이가 출력되게 만드세요.

 

문제에선 이미 배열 크기가 정해져 있어서 for 루프 조건에서 sizeof(p) / sizeof(struct Point2D)를 이용하지 않았는데 흠... 그렇게 해볼 걸 그랬나

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
 
struct Point2D {
    int x;
    int y;
};
 
int main()
{
    struct Point2D p[4];
    double length = 0.0f;
 
    scanf("%d %d %d %d %d %d %d %d",
        &p[0].x, &p[0].y, &p[1].x, &p[1].y, &p[2].x, &p[2].y, &p[3].x, &p[3].y
    );
 
    for (int i = 0; i < 3; i++)
    {
        int a = p[i + 1].x - p[i].x;
        int b = p[i + 1].y - p[i].y;
        length += sqrt((a * a) + (b * b));
    }
 
        printf("%f\n", length);
 
    return 0;
}
cs