C프로그래밍 구조체 이해하기. 2차원 공간 상의 점의 거리 구하기.
구조체란, 서로 다른 종류의 데이터를 하나로 묶기위해 사용하는 자료형이다.
예를 들어, 학생의 정보를 구조체로 묶어보자.
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;
}