【正文】
善??戳藭?,最后都一一解決了。 continue。 buf[j] != 39。\039。 i++) { buf[++j] = getchar()。size = 10。return。marks[j][3],amp。 scanf(%d,%d,%d,%d,%d,amp。 }}if (found) { printf(please input %s39。 students[i] != NULL。 printf(Enter Student Name to be added marks in:\n)。}}/* function EditMarks *//*This function prompts the user to enter a student namewhose marks are to be edited. The precise form of the promptis Enter Student Name whose marks are to be edited:Then this function reads the name from standard input.But it must be able to read any name of any size!! Thus you haveto allocate memory (using malloc()) to read the input into, and ifit is not big enough, must use realloc() to extend it. You are notallowed to allocate more than 10 bytes in one allocation or extendyour segment by more than 10 bytes in one call to realloc().Do not forget to deallocate the memory before exiting the function!Note that this part of the code is the same as in InsertStudent()and DeleteStudent(), so you can either copy it or write a functionthat would do it for all three.If the student is not found in the array students, a warning messagestudent xxx not in the Class List is displayed on the screen andthe function terminates. If it is found, the students name followedby : and his/her five marks are displayed (again, 1 must be shownas a space, as in ShowClass()). Let us assume that the student inquestion has marks 10,1,20,15,5Then the function displays a prompt to the user forthe first mark to leave the 1st mark 10 unchanged pressenterotherwise type the new mark and pressenter and reads the user39。 } } }}/* function ShowClass *//*In this function you display on the screen eachstudent in the class and his/her 5 marks on a line.If the mark is 1 display a space instead. After thename of student display : and separate the marks by ,Note that both students and marks are passed to thisfunction by value, for this function does not need to modify thevalue stored in the pointer student. The same applies to marks.*/void ShowClass(char** students,int** marks){ int i。 students[i+1]=temp。j++) { for(i=j。 int* temp1。 return。 free((void*)marksx)。//free key student39。ib。ij。 }} b=i。/* do we have the student yet ? */for(found = i = 0。 name = ReadLine()。 char* namex。 char** studentsx。*students = students1。if ((marks1[i] = (int*) malloc(5*sizeof(int))) == NULL) merror(9)。strcpy(students1[i],name)。 return。 students1[i] != NULL。 *students = students1。 if ((marks1 = (int**) malloc(2*sizeof(int*))) == NULL)merror(4)。if (students1 == NULL) { if ((students1 = (char**) malloc(2*sizeof(char*))) == NULL)merror(2)。char *name。char** students1。else if (menu == 4) EditMarks(students,marks)。else if (menu == 2) DeleteStudent(amp。 continue。if (ssca