0

大家好,

我尝试用链表准备一个学生信息系统。我创建了一个名为 course 的 scturct。用于插入过程;我将在函数 main 中调用 void insertCourse(CourseNodePtr* cr, char* code)。当我编译时,我看到了这些错误;“insertCourse”的 arg 2 的类型不兼容。函数“insertCourse”的参数太少。有人评论这个问题吗?非常感谢..

/* Function Prototypes */
void insertCourse(CourseNodePtr* cr, char* code);

/* Main func starts here */

int main(void)
Course course_code; 


switch (choice) {
             case 1: 
                  insertCourse(&startPtr, course_code);
                  break;



/* Insert course function  */
void insertCourse(CourseNodePtr* cr, char* code)
{
CourseNodePtr newPtr;   /* New node pointer */
CourseNodePtr previousPtr;   /* previous node pointer in list */
CourseNodePtr currentPtr;    /* current node pointer in list */

newPtr = malloc( sizeof(Course) );   /* memory allocation for new node */

if (newPtr != NULL) {
           printf("Pls enter the code number of the course.\n");
           scanf("%s", &(newPtr->code));
           printf("Pls enter the course name.\n"); 
           scanf("%s", &(newPtr->name));
           printf("Pls enter the instructor name.\n"); 
           scanf("%s", &(newPtr->instructor));
           printf("Pls enter the term; Spring or Fall.\n"); 
           scanf("%s", &(newPtr->term));
           printf("Pls enter the year.\n"); 
           scanf("%s", &(newPtr->year));
           newPtr->coursePtr = NULL; 

           previousPtr = NULL; 
           currentPtr = *cr; 

           while ((currentPtr != NULL)  && ( code  > currentPtr->code)) {
                 previousPtr = currentPtr; 
                 currentPtr = currentPtr->coursePtr; 
           }  /* End While */

           if ( previousPtr == NULL ) {
                newPtr->coursePtr = *cr; 
                *cr = newPtr; 
           }   /* End if */
           else {
                previousPtr->coursePtr = newPtr; 
                newPtr->coursePtr = currentPtr; 
           }  /* End else */
    } /* End if */

    else {
         printf( " %c could not be inserted. Memory not enough...\n", code); 
    }  /* End else */
} /* End function insert */                    
4

2 回答 2

0

你定义course_codeCourse

Course course_code; 

并调用insertCourse()

insertCourse(&startPtr, course_code);

但它的论点必须是CourseNodePtr*char*

void insertCourse(CourseNodePtr* cr, char* code)

您传递的第二个参数类型不正确。肯定是Course

void insertCourse(CourseNodePtr* cr, Course code)
于 2013-01-15T18:54:45.397 回答
0

insertCourse 的第二个参数需要类型*char并且您正在传递类型Course

insertCourse(&startPtr, course_code);
------------------------^ here
于 2013-01-15T18:55:50.893 回答