반응형

2차원 공간에서 사각형은 2개의 점으로 이루어진다. 앞의 문제에서 정의한 point 구조체를 2개 사용하여 구조체 rectangle을 정의하라. 이 rectangle 구조체를 받아서 다음과 같은 기능을 하는 함수를 작성하고 테스트하라.

(a) 사각형의 넓이를 계산하는 함수 int area(struct rectangle r)

(b) 사각형의 둘레를 계산하는 함수 int perimeter(struct rectangle r)

(c) 정사각형인지를 검사하는 함수 int is_square(struct rectangle r)


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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
struct point{
    int x;
    int y;};
struct rectangle{
    struct point a;
    struct point b;};
int area(struct rectangle r);
int perimeter(struct rectangle r);
int is_square(struct rectangle r);
int amplitude(int a, int b);
int main(void)
{
    struct rectangle one={{0,0},{0,0}};
 printf("첫번째 점을 입력하세요\n");
 scanf("%d %d"&one.a.x, &one.a.y);
 printf("두번째 점을 입력하세요\n");
 scanf("%d %d"&one.b.x, &one.b.y);
 printf("넓이는 %d입니다.\n", area(one));
 printf("둘레는 %d입니다.\n", perimeter(one));
 if(is_square(one)==1)
     printf("정사각형입니다.\n");
 else
     printf("정사각형이아닙니다.\n");
 return 0;
}
int area(struct rectangle r)
{
 int garo, sero, area;
 garo=amplitude(r.a.x,r.b.x);
 sero=amplitude(r.a.y,r.b.y);
 area=garo*sero;
 return area;
}
int perimeter(struct rectangle r)
{
    int garo, sero, peri;
    garo=amplitude(r.a.x,r.b.x);
    sero=amplitude(r.a.y,r.b.y);
    peri=2*(garo+sero);
    return peri;
}
int is_square(struct rectangle r)
{
    int garo, sero;
    garo=amplitude(r.a.x,r.b.x);
    sero=amplitude(r.a.y,r.b.y);
    if(garo==sero)
        return 1;
    else
        return 0;
}
int amplitude(int a, int b)
{
    int result;
if(a>=b)
    result=a-b;
else
    result=-(a-b);
return result;
}
cs





반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

벡터 합  (0) 2016.12.27
복소수 합  (0) 2016.12.27
포인터 평면 위의 점  (0) 2016.12.27
좌표 일치 확인  (0) 2016.12.27
찾아 바꾸기  (0) 2016.08.22

+ Recent posts