간단한 지하철 경로 탐색 프로그램 만드는 중임
양쪽을 포인터로 연결해서 만들라고 하는데
오류가 졸라 많이 뜸.. 자료구조 허접이라서

비쥬얼 씨플플 2010으로 돌리고..
오류 내용은
1>c:\\c\\metro\\metro\\metro.c(13): error C2061: 구문 오류 : 식별자 \'station\'
1>c:\\c\\metro\\metro\\metro.c(14): error C2143: 구문 오류 : \'{\'이(가) \'*\' 앞에 없습니다.
1>c:\\c\\metro\\metro\\metro.c(15): error C2059: 구문 오류 : \'}\'
1>c:\\c\\metro\\metro\\metro.c(17): error C2061: 구문 오류 : 식별자 \'line1\'
1>c:\\c\\metro\\metro\\metro.c(17): error C2059: 구문 오류 : \';\'
1>c:\\c\\metro\\metro\\metro.c(17): error C3409: 빈 특성 블록을 사용할 수 없습니다.
1>c:\\c\\metro\\metro\\metro.c(17): error C2143: 구문 오류 : \']\'이(가) \'상수\' 앞에 없습니다.
1>c:\\c\\metro\\metro\\metro.c(31): error C2016: C를 사용하려면 구조체 또는 공용 구조체에 멤버가 하나 이상 있어야 합니다.
1>c:\\c\\metro\\metro\\metro.c(31): error C2061: 구문 오류 : 식별자 \'station\'
1>c:\\c\\metro\\metro\\metro.c(32): error C2059: 구문 오류 : \'}\'
1>c:\\c\\metro\\metro\\metro.c(33): error C2143: 구문 오류 : \'{\'이(가) \'*\' 앞에 없습니다.
1>c:\\c\\metro\\metro\\metro.c(35): error C2065: \'ListHead\' : 선언되지 않은 식별자입니다.
1>c:\\c\\metro\\metro\\metro.c(35): error C2065: \'L\' : 선언되지 않은 식별자입니다.
1>c:\\c\\metro\\metro\\metro.c(35): warning C4552: \'*\' : 의미 없는 연산자입니다. 파생 작업이 있는 연산자여야 합니다.
1>c:\\c\\metro\\metro\\metro.c(36): error C2065: \'L\' : 선언되지 않은 식별자입니다.
1>c:\\c\\metro\\metro\\metro.c(36): error C2065: \'ListHead\' : 선언되지 않은 식별자입니다.
1>c:\\c\\metro\\metro\\metro.c(36): error C2059: 구문 오류 : \')\'
1>c:\\c\\metro\\metro\\metro.c(37): error C2065: \'L\' : 선언되지 않은 식별자입니다.
1>c:\\c\\metro\\metro\\metro.c(37): error C2223: \'->head\' 왼쪽은 구조체/공용 구조체를 가리켜야 합니다.
1>c:\\c\\metro\\metro\\metro.c(38): error C2065: \'L\' : 선언되지 않은 식별자입니다.
1>c:\\c\\metro\\metro\\metro.c(38): warning C4047: \'return\' : \'int *\'의 간접 참조 수준이 \'int\'과(와) 다릅니다.
1>c:\\c\\metro\\metro\\metro.c(48): error C2065: \'ListHead\' : 선언되지 않은 식별자입니다.
1>c:\\c\\metro\\metro\\metro.c(48): error C2065: \'L\' : 선언되지 않은 식별자입니다.
1>c:\\c\\metro\\metro\\metro.c(48): warning C4552: \'*\' : 의미 없는 연산자입니다. 파생 작업이 있는 연산자여야 합니다.
1>c:\\c\\metro\\metro\\metro.c(58): error C2065: \'L\' : 선언되지 않은 식별자입니다.
1>c:\\c\\metro\\metro\\metro.c(58): warning C4047: \'=\' : \'int\'의 간접 참조 수준이 \'int *\'과(와) 다릅니다.
1>c:\\c\\metro\\metro\\metro.c(60): error C2065: \'L\' : 선언되지 않은 식별자입니다.
1>c:\\c\\metro\\metro\\metro.c(60): warning C4047: \'함수\' : \'char *\'의 간접 참조 수준이 \'int\'과(와) 다릅니다.
1>c:\\c\\metro\\metro\\metro.c(60): warning C4024: \'subway\' : 형식 및 실제 매개 변수 1의 형식이 서로 다릅니다.
1>c:\\c\\metro\\metro\\metro.c(60): warning C4020: \'subway\' : 실제 매개 변수가 너무 많습니다.
1>c:\\c\\metro\\metro\\metro.c(71): error C2143: 구문 오류 : \')\'이(가) \'*\' 앞에 없습니다.
1>c:\\c\\metro\\metro\\metro.c(71): error C2143: 구문 오류 : \'{\'이(가) \'*\' 앞에 없습니다.
1>c:\\c\\metro\\metro\\metro.c(71): error C2059: 구문 오류 : \'형식\'
1>c:\\c\\metro\\metro\\metro.c(71): error C2059: 구문 오류 : \')\'
이고 .. 난 솔직히 뭐가 잘못됬는지 모르겠음.. 흑흑
헬프 ㅠㅠ






이건 코드

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int time=0;//총 소요시간
int trans=0;//환승횟수
int num=0;//정거장 수 

typedef struct{
        char stationName[30];//역이름
        int time;//인근 역으로 이동시 소요시간
        int number;//역 번호
        station *left; //왼쪽역으로 이동
        station *right; //오른쪽역으로 이동
}station;

station line1[100] =//자료구조때 배운 링크드리스트를 이용해 봤습니다.. 
{
        {\"안심\",3,0,NULL,&line1[1]},{\"각산\",2,1,&line1[0],&line1[2]},{\"반야월\",4,2,&line1[1],&line1[3]},
        {\"신기\",2,3,&line1[2],&line1[4]},{\"율하\",3,4,&line1[3],&line1[5]},{\"용계\",3,5,&line1[4],&line1[6]},
        {\"방촌\",1,6,&line1[5],&line1[7]},{\"해안\",5,7,&line1[6],&line1[8]},{\"동초\",3,8,&line1[7],&line1[9]},
        {\"아양교\",3,9,&line1[8],&line1[10]},{\"큰고개\",2,10,&line1[9],&line1[11]},{\"동대구역\",3,11,&line1[10],&line1[12]},
        {\"신천\",3,12,&line1[11],&line1[13]},{\"칠성시장\",4,13,&line1[12],&line1[14]},{\"대구역\",5,14,&line1[13],&line1[15]},
        {\"중앙로\",2,15,&line1[14],&line1[16]},{\"반월당\",2,16,&line1[15],&line1[17]},{\"명덕\",2,17,&line1[16],&line1[18]},
        {\"교대\",2,18,&line1[17],&line1[19]},{\"영대병원\",3,19,&line1[18],&line1[20]},{\"현충로\",3,20,&line1[19],&line1[21]},
        {\"안지랑\",4,21,&line1[20],&line1[22]},{\"대명\",2,22,&line1[21],&line1[23]},{\"성당못\",3,23,&line1[22],&line1[24]},
        {\"송현\",5,24,&line1[23],&line1[25]},{\"월총\",2,25,&line1[24],&line1[26]},{\"상인\",3,26,&line1[25],&line1[27]},
        {\"월배\",3,27,&line1[26],&line1[28]},{\"진천\",1,28,&line1[27],&line1[29]},{\"대곡\",5,29,&line1[28],NULL}
};
typedef struct ListHead{
        station* head;
} ListHead;
ListHead * createLinkedList()
{
        ListHead*L;
        L = (ListHead *)malloc(sizeof(ListHead));
        L->head = NULL;
        return L;
}

void subway(char * start,char * end);

void main()
{
        char start[100];//시작역 입력
        char end[100];//종착역 입력

        ListHead* L;
        
        printf(\"**** 대구 지하철 노선도  ****\\n\");
        printf(\"시작역을 입력하세요:\");
        gets(start);
        printf(\"종착역을 입력하세요:\");
        gets(end);

        L = createLinkedList();
        
        subway(L,start,end);
        
        printf(\"소요시간 : %d, 정거장 수 : %d\\n\",time,num);
        
        getchar();//종료방지
}

/*void line1_1(char start[],char end[])
{

}*/
void subway(ListHead*L, char * start,char * end)
{
        int i=-1;//시작 전엔 -1번(없는 번호) 부터 시작
        int j,k;
        station st ;//시작역 임시저장
        station en ;//종착역 임시저장
        station * sta;
        sta = L->head;
        while(i<=28)//시작역 탐색
        {
                ++i;//0번 부터 시작
                if(line1[i].stationName ==  start)
                {
                        st = line1[i];
                        sta = &line1[i];//시작점을 가리키는 포인터sta
                        k = i;
                        break;
                }
        }
        i = -1;
        while(i<=28)//종착역 탐색
        {
                ++i;//0번 부터 시작
                if(line1[i].stationName ==  end)
                {
                        en = line1[i];
                        break;
                }
        }
        //sta = &st;//시작점을 가리키는 포인터 sta
        if(st.number<=en.number)//거리계산 정방향으로 갈시..
        {
                while(1)
                {
                        time += sta->time;
                        num++;
                        sta = line1[k++].right;//다음 역으로 이동!
                        if(sta->stationName == en.stationName)//도착시 종료
                                break;
                }
        }
        else//역방향으로 갈시
        {
                while(1)
                {
                        time += sta->time;
                        num++;
                        sta = line1[k++].left;//다음 역으로 이동!
                        if(sta->stationName == en.stationName)//도착시 종료
                                break;
                }
        }
}