50.2 연습문제: 사각형의 넓이 구하기

다음 소스 코드를 완성하여 사각형의 넓이가 출력되게 만드세요.

practice_area_of_rectangle.c

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

struct Rectangle {
    int x1, y1;
    int x2, y2;
};

int main()
{
    struct Rectangle rect;
    int area;

    rect.x1 = 20;
    rect.y1 = 20;
    rect.x2 = 40;
    rect.y2 = 30;

    ________________________________
    ________________________________
    ________________________________

    printf("%d\n", area);

    return 0;
}

실행 결과

200

정답

 int width = abs(rect.x2 - rect.x1);
 int height = abs(rect.y2 - rect.y1);
 area = width * height;

해설

구조체 Rectangle을 보면 멤버가 x1, y1, x2, y2이므로 점 두 개로 구성된 사각형입니다.

그림 50‑3 두 점을 이용한 사각형

너비 width를 구하려면 rect.x2에서 rect.x1을 빼면 되고, 높이 height를 구하려면 rect.y2에서 rect.y1을 빼면 됩니다. 단, 음수가 나올 수도 있으므로 abs 함수를 사용하여 절댓값으로 만들어줍니다.

직사각형의 넓이는 너비 곱하기 높이이므로 widthheight를 곱해주면 됩니다.