#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define MAX_CNUM 50


typedef struct course_node *course_list_pointer;

typedef struct course_node {

 char courseid[10];

 char tname[20];

 unsigned snum;

 unsigned roomnum;

 course_list_pointer next;

}


void printout_over40(course_list_pointer ptr);

void search_prof(course_list_pointer ptr, char name[]);

void search_room(course_list_pointer ptr, unsigned sroomnum);


int main(int argc, char argv[]){

FILE *coursedb;

course_list_pointer temp, before, ptr = NULL;

char sprof[20];

unsigned sroomnum;

if((coursedb = fopen(argv[1], "r")) == NULL)  {

printf(" 데이터 파일을 열 수 없습니다.\n");

exit(1);

}

temp = (course_list_pointer)malloc(sizeof(struct course_node));

while (fscanf(coursedb, "%s %s %u %u",&(temp->courseid),&(temp->tname),&(temp->snum),&(temp->roomnum)) != EOF) {

  temp->next=NULL;

  if(ptr)

   before ->next = temp;

  else

   ptr = temp;

  

  before = temp;

  temp = (course_list_pointer)malloc(sizeof(struct course_node));

 }

 printf("수강인원이 40명 이상인 강좌 코드 번호를 출력하시오 . \n");

 printout_over40(ptr);

 printf("검색하고자 하는 교수이름 입력 : ");

 scanf("%s ",sprof);

 printf("%s 교사가 강의하는 강좌코드와 강의실 번호를 출려하시오.,\n" , sprof);

 search_prof(ptr,sprof);

 printf("검색하고자 하는 강의 번호 입력 : " );

 scanf("%u",&sroomnum);

 printf("%u 강의실에 수업하는 강좌코드와 담당교수를 입력하시오. \n",sroomnum);

 search_room(ptr,sroomnum);

}


void printout_over40(course_list_pointer ptr)

{

 for (; ptr; ptr=ptr->next)

  if(ptr->snum >= 40)

   printf("%s\n",ptr -> courseid);

}


void search_prof(course_list_pointer ptr, char name[]){

 for (; ptr; ptr=ptr->next)

  if (!strcmp(ptr->tname, name))

   printf("%s\t%u\n",ptr->courseid,ptr->roomnum);

}


void search_room(course_list_pointer ptr, unsigned sroomnum)

{

 for(; ptr ; ptr=ptr->next)

  if(ptr->roomnum == sroomnum)

   printf("%s\t%s\n", ptr->courseid, ptr->tname);

}



왜 argv[1]에서 오류뜨는지 모르겟음