오늘은 어제에 이어서 구조체와 연결되는 연습문제를 풀어보았습니다.
484p 문제 23-1 [구조체 변수의 연산]
다음 구조체의 두변수를 대상으로 저장된 값을 서로 바꿔주는 함수를 정의하고 이를 호출하는 예제를 작성해보자
문제의 밑줄친 부분을 제대로 읽지 않아서 소스가 조금 길어졌습니다.
ㅠ
한번에 보기에도 줄일 수 있는 소스들이 있었는데 작성할때는 왜 몰랐는지 의문입니다 ㅜㅠ
답소스를 보시면
답소스를 보면 이런식으로 조금더 짧게 작성 되어 있습니다.
비교해서 보시면 차이가 납니다.
★
*ptr은 말 그대로 ptr을 가리키는 함수입니다.
그것만 이해하면 제가 소스를 쓴것처럼 저렇게 복잡하게 작성할 필요가 없었지만,
활용능력이 부족해서 생긴 문제인 것 같습니다. 분발해야겠습니다...!
더불어 메인해서 함수를 두번 호출했으니 구조체에대한 이해도 부족하군요..!
pos1->xpos = pos2->xpos;
pos1->ypos = pos2->ypos; = > *ptr1 = *ptr2;
보라색이 제가 작성한 코드이고 초록색은 답소스입니다.
포인터를 쓰면 해결되는 것을
저는 x좌표 y좌표 하나하나씩 바꾸었군요.
ㅜㅠ
★
문제의
"저장된 값을 서로 바꿔주는 함수를 정의"
이부분을 제대로 이해하지 못해서 생긴 문제입니다.
저는 그것을 메인함수 내에서 해결하려했죠
★
그로 인해서 메인함수에서 change 함수를 두번 호출하였습니다!
그래도 점점 발전해나가는 모습이 보이는 것 같습니다.
이전에 피보나치 수열 할때만해도 소스길이가 두배 넘게 차이가 나서 좌절하곤 했는데
물론 아직 멀었지만
지금은 길이와 소스를 작성하는 요령도 어느정도 비슷해졌습니다.
앞으로 더 분발해야겠습니다!
이상입니다.
(puts , fputs) , (gets , fgets) 에 관한 개인 필기 첨부
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
20160411_장진웅_업무일지_구조체로 도서관 프로그래밍 (1) | 2016.04.11 |
---|---|
20160408_장진웅_업무일지_공장내 Network_네트워크 기초 (0) | 2016.04.11 |
20160407_장진웅_업무일지_로봇제어_시리얼제어4 (0) | 2016.04.11 |
20160406_김도관_업무일지_C언어기초_02 (0) | 2016.04.11 |
비주얼 스튜디오 삭제방법 (2) | 2016.04.10 |
20160409_김가연_스터디일지_구조체의 정의 (2) | 2016.04.09 |
20160404-업무일지-허도경-로봇제어-시리얼제어-터미널 (0) | 2016.04.08 |
20160405_김도관_업무일지_C언어기초_01 (1) | 2016.04.07 |