1. 구조체에 대해 조사하여 다음 문항에 답하시오. (1시간 소요)

  가. 구조체가 무엇인지 설명하고 쓰임새에 대해 50자 이내로 정리해 보시오.

 

  나. 구조체의 선언은 다음과 같다.

 

    struct 구조체이름
    {

      구조체에 들어있는 변수들의 선언

    };

 

    이를 암기하시오. 또, 점의 좌표를 저장하기 위한 데이터형으로써, 구조체이름은 Point로 하고, 내용은 int x, int y를 가지는 구조체를 선언해 보시오.

 

  다. '나'에서 선언한 구조체의 형태로 만들어지는 변수를 사용하기 위해 main 함수에서  

 

    struct 구조체이름 *사용할 변수명 = malloc(sizeof(struct 구조체이름));

 

    과 같이 포인터 변수를 만드시오. 한편, 이를 암기하시오.

 

  라. (1,2)의 좌표를 가지는 A라는 점이 있다. 이를 위해 사용할 변수명을 A로 하고,

    A에 들어있는 x,y에 1,2를 넣어보시오.

    예를들어 A->x = 10, A->y = 20 처럼 하면 됨

    https://dojang.io/mod/page/view.php?id=419

    https://dojang.io/mod/page/view.php?id=446  를 참조하시오.

 

  마. (3,4)의 좌표를 가지는 B라는 점이 있다. 이를 위해 사용할 변수명을 B로 하고,

    변수 선언과 동시에 값이 들어가도록 해 보시오.

    예를들어 struct 구조체이름 *사용할변수명 = {10,20} 처럼 하면 됨.

 

 

2. 구조체는 배열로 만들수도 있다. 다음 문항에 답하시오.  (2시간 소요)

  가. 삼각형의 세 점의 좌표를 받기 위해 1번 문항에서 만들었던 Point라는 이름의 구조체로 3개의 배열을 만들어 보시오. https://dojang.io/mod/page/view.php?id=446 를 참조하시오.

  세 점은 (Point[0]->x,   Point[0]->y)   (Point[1]->x,   Point[1]->y)   (Point[2]->x,   CPoint[2]->y) 처럼 접근할 수 있도록 만드시오.

 

  나. 세 점의 좌표 Point[0]->x   Point[0]->y   Point[1]->x  Point[1]->y   Point[2]->x   Point[2]->y 를 임의로 입력하시오.

 

  다. 두 점 (x1,y1)  (x2,y2) 를 입력받아 두 점사이의 거리를 구하는 함수를 만드시오.

    https://dojang.io/mod/page/view.php?id=427 를 참조하시오

 

  라. '다'를 이용하여 (Point[0]->x,   Point[0]->y)   (Point[1]->x,  Point[1]->y) 사이의 거리를 구하고 이를 a라 하시오.
   (Point[1]->x,  Point[1]->y)  (Point[2]->x,  Point[2]->y) 사이의 거리를 구하고 이를 b라 하시오.

   (Point[2]->x,  Point[2]->y) (Point[0]->x,  Point[0]->y) 사이의 거리를 구하고 이를 c라 하시오.

 

  마. '라'를 이용하여, 헤론의 공식에 a,b,c를 대입하시오. 그리고 이 삼각형의 넓이를 구하시오.

   https://mathbang.net/541 의 하단의 노란색 박스를 참조하시오.

 

  바. '마'에서 0,0   0,1   1,0을 넣어 0.5가 나오는지 확인하시오.

  사. '바'에서 1,1   2,2  3,3을 넣으면 세 점이 일직선 위에 있기 때문에 넓이가 0이 되는데 이를 출력할수 있도록 해보시오.

 

 

3. 다음과 같은 원시자료가 있다.

 

 학번  닉네임    무게      용돈    학점

  1      오리        60       5000      D

  2      돼지       100       3000     C

  3      토끼        90        7000     B

  4      새           80        1000     A

  5      비둘기     50        2000     A

  6      두꺼비     70        4000     B

 

  이를 저장하기 위한 구조체를 구성하여 보시오. (1시간 소요)

  가. char NickName[100], int Weight, int Money, char Point 를 가지는 구조체를 만들고 구조체의 이름을 정해보시오.

 

  나. '가'에서 만든 구조체에 위 6마리 동물들의 데이터를 넣으시오. 단, -> 를 이용하여 일일이 넣으시오.

 

  다. '나'의 방법으로는 닉네임을 넣을 수 없음을 확인하고, strcpy를 이용하시오. https://dojang.io/mod/page/view.php?id=419 를 참조하시오.

 

  라. 데이터가 제대로 들어갔는지 출력하는 함수를 만드시오. 학번을 넣으면 그 학번을 가진 동물의 모든 데이터값(닉네임, 무게, 용돈, 학점)이 출력되도록 해보시오.

'C언어' 카테고리의 다른 글

C언어 기초 12주차  (0) 2020.12.21
C언어 기초 9주차  (0) 2020.11.29
C언어 기초 8주차  (0) 2020.11.22
c언어 기초 7주차  (0) 2020.11.15
c언어 기초 6주차  (0) 2020.11.08
by 맑은소금 2020. 12. 27. 23:37
| 1 |