C에서 구조체로 연산을 하는 코딩인데 뭐가 틀렸나요??

조회수 1473회
#include<stdio.h>

typedef struct
{

    int xpos;
    int ypos;

}Point;

void Swap(Point pos1,Point pos2)
{

    int imsix;
    imsix=pos1.xpos;
    pos1.xpos=pos2.xpos;
    pos2.xpos=imsix;

    int imsiy;
    moon=pos1.ypos;
    pos1.ypos=pos2.ypos;
    pos2.ypos=imsiy;

}

int main(void)
{

    Point pos1,pos2;
    printf("두 개의 좌표를 입력하시오.\n");
    scanf("%d %d",&pos1.xpos,&pos1.ypos);
    printf("\n");
    scanf("%d %d",&pos2.xpos,&pos2.ypos);
    printf("첫번째 좌표:[%d,%d]",pos1.xpos,pos1.ypos);
    printf("두번째 좌표:[%d,%d]",pos2.xpos,pos2.ypos);
    Swap(pos1,pos2);
    printf("첫번째 좌표:[%d,%d]",pos1.xpos,pos1.ypos);
    printf("두번째 좌표:[%d,%d]",pos2.xpos,pos2.ypos);
    return 0;

}

오류메시지: 1>c:\users\samsung\documents\visual studio 2010\projects\programming\programming\roundarith.c(227): error C2143: 구문 오류 : ';'이(가) '형식' 앞에 없습니다. 1>c:\users\samsung\documents\visual studio 2010\projects\programming\programming\roundarith.c(228): error C2065: 'imsiy' : 선언되지 않은 식별자입니다. 1>c:\users\samsung\documents\visual studio 2010\projects\programming\programming\roundarith.c(230): error C2065: 'imsiy' : 선언되지 않은 식별자입니다.

c를 시작한지 3주된 학생입니다. 위 코딩에서 어디가 잘못되었는지 가르쳐주시면 감사하겠습니다.

1 답변

  • moon=pos1.ypos;

    코드에 moon은 무슨용도의 변수인가요?

    사용하는 건가요?

    • moon 변수만 처리하면 오류는 없어보입니다. 그러나 swap 함수는 기대한대로 동작안할겁니다. 정영훈 2018.2.23 17:04
    • moon은 제가 스스로 고치려고 시도하면서 생긴 오류인거 같네요. 변수를 다시 고쳐봐도 말씀하신것처럼 swap함수가 작동이 안되던데 이유좀 알 수 있을까요? 알 수 없는 사용자 2018.2.23 17:15
    • 포인터를 학습해야 가능합니다. 함수를 호출할때 stack 이라는 메모리 공간을 사용한다는 것도 인지를 해야합니다. 정영훈 2018.2.23 17:18

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)