coding/C언어

C프로그래밍 구조체 이해하기. 2차원 공간 상의 점의 거리 구하기.

codingdoeun 2021. 11. 18. 16:19

구조체란, 서로 다른 종류의 데이터를 하나로 묶기위해 사용하는 자료형이다.

 

예를 들어, 학생의 정보를 구조체로 묶어보자.

struct student {

     int number;

     char name[10];

     double grade;

}

배열이 여러 개의 같은 자료형을 하나로 묶는 것이라면 구조체는 서로 다른 자료형들을 하나로 묶는 것이다.

 

2차원 공간 상의 점을 구조체로 표현하기

사용자로부터 두 점의 좌표를 입력받아서 두 점사이의 거리를 계산하여 보자. 점의 좌표를 구조체로 표현한다. 두 점 사이의 거리를 구하는 공식으로 계산한다.

 

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

struct point {
    int x;
    int y;
};

int main(void)
{
    struct point p1, p2;
    int xdiff, ydiff;
    double dist;

    printf("점의 좌표를 입력하시오(x y): ");
    scanf_s("%d %d", &p1.x, &p1.y);


    printf("점의 좌표를 입력하시오(x y): ");
    scanf_s("%d %d", &p2.x, &p2.y);

    xdiff = p1.x - p2.x;
    ydiff = p1.y - p2.y;

    dist = sqrt((double)(xdiff * xdiff + ydiff * ydiff));
    printf("거리는 %f입니다. \n", dist);
    return 0;
}