반응형

구조체(3-2)

 

 

사용자로부터 두 점의 좌표를 입력받아, 두 점 사이의 거리를 계산하는 프로그램을 만들어 보자.

 

먼저, 점의 좌표를 구조체로 표현한다. 

 

두 점 사이의 거리는 다음 공식(?)으로 계산한다.

 

 


 

문제풀이.c
0.00MB

 

 

 


 

위 사진을 기반으로 해석과 이해를 해보자.

 

먼저,

 

4 ~ 8번째 줄 : 구조체 point가 선언되었고, 이 구조체는 2개의 멤버 변수 

 

x와 y로 정의된다.

 

아직 구조체 변수는 선언되지 않았음을 명심하고,

 

이 구조체 역시 이전 예제들처럼 함수 외에 정의되어서 소스 파일 내에서 

 

아무 데서나 호출할 수 있다.

 


 

12번째 줄 : 구조체 point의 변수 p1과 p2를 선언하고, 선언되는 위치가 함수 내부이므로 

 

자동 변수가 되고 따라서 초기값은 쓰레기 값이 된다.

 


 

13 ~ 14번째 줄 : x좌표의 차이를 저장할 변수 a와 y좌표의 차이를 저장할 변수 b가 선언되었다.

 

두 점 사이의 거리는 일반적으로 실수 값이므로 double형 변수 c를 선언했다.

 


 

16 ~ 17번째 줄 : 사용자로부터 점의 좌표 값을 입력받아

 

구조체 변수 p1의 멤버 변수인 x와 y에 저장된다.

 


 

19 ~ 20번째 줄 : 사용자로부터 점의 좌표 값을 입력받아

 

구조체 변수 p2의 멤버 변수인 x와 y에 저장된다.

 

이 문장에서는 구조체 변수 p1이 아니라 p2의 멤버 변수에 저장되었음을 명심하자.

 


 

22번째 줄 : x좌표 값의 차이를 계산해서 int형 변수 a에 저장한다.

 

이때 차이 값들이 음수가 될 수 있는데,

 

어차피 제곱하는 과정에서 양수로 변하기 때문에 상관없다.

 


 

23번째 줄 : y좌표 값의 차이를 계산해서 int형 변수 b에 저장한다.

 

이 때도 음수가 나올 수 있지만 제곱 과정에서 양수로 바뀐다.

 


 

24번째 줄 : sqrt함수는 제곱근을 계산하는 함수이다.

 

이 함수를 호출해서 

 

이 공식의 대입하여 값을 계산하고, double형 변수 c에 저장한다.

 

참고로 sqrt 함수는 double형을 받아서 double형으로 반환한다.

 


 

이렇게 구조체의 멤버 변수 참조의 예제들을 봐보았다.

 

다음은 구조체의 활용부터 구조체와 배열 등을 봐보자.

반응형

+ Recent posts