C 언어 중첩구조체 활용과 구조체 포인터를 사용한 직사각형 좌표 출력

s_rectangle 구조체는 중첩구조체로 left_top이라는 s_point 구조체 멤버변수를 가진다.
직사각형의 너비와 너비를 입력받아 나머지 right_top, left_bottom, right_bottom 좌표를
출력해주는 코드이다.

#include <stdio.h>

struct s_point
{
        int x;
        int y;
};

struct s_rectangle
{
        struct s_point left_top;
        int width; //너비
        int height; //높이
};

void print_rectangle_info(struct s_rectangle rectangle);
void input_rectangle_info(struct s_rectangle *pRectangle);

int main()
{
        struct s_rectangle rectangle = {0};

        input_rectangle_info(&rectangle);
        print_rectangle_info(rectangle);

        return 0;
}

void input_rectangle_info(struct s_rectangle *pRectangle)
{
        if(NULL != pRectangle)
        {
                printf("기준점 (left_top)의 위치 x는 ?");
                scanf("%d", &(pRectangle -> left_top.x));

                printf("기준점 (left_top)의 위치 y는 ?");
                scanf("%d", &(pRectangle -> left_top.y));

                printf("너비는 ? ");
                scanf("%d",&(pRectangle -> width));

                printf("높이는 ? ");
scanf("%d",&(pRectangle -> height));

        }
        else
        {
                printf("NULL 오류 !!!: input_rectangle_info() \n");
        }
}

void print_rectangle_info(struct s_rectangle rectangle)
{
        printf("Left-top: (%d , %d) \n", rectangle.left_top.x, rectangle.left_top.y);
        printf("Right-top: (%d , %d) \n", rectangle.left_top.x + rectangle.width, rectangle.left_top.y);
        printf("Left-bottom: (%d , %d) \n", rectangle.left_top.x, rectangle.left_top.y + rectangle.height);
        printf("Right-bottom: (%d , %d) \n", rectangle.left_top.x + rectangle.width, rectangle.left_top.y + rectangle.height);

}


실행 시 :
ndgndg91@LAPTOP-CCFK7MKV:~$ ./print_points
기준점 (left_top)의 위치 x는 ?1
기준점 (left_top)의 위치 y는 ?5
너비는 ? 20
높이는 ? 30
Left-top: (1 , 5)
Right-top: (21 , 5)
Left-bottom: (1 , 35)
Right-bottom: (21 , 35)

댓글

이 블로그의 인기 게시물

About Kafka Basic

About JVM Warm up

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

About G1 GC

sneak peek jitpack

About idempotent

Synology NAS에 MariaDB 10에 Mysql workbench로 원격접속하기

C 언어 구조체의 포인터 멤버 변수

About Websocket minimize data size and data transfer cost on cloud