Итак, я пишу программу, в которой есть меню выбора, из которого пользователь может выбирать, где он может вставлять, считать, печатать, удалять и изменять узлы. У пользователя также есть шестая опция, чтобы просто выйти из программы. Моя проблема в том, что всякий раз, когда пользователь выбирает 5-ю опцию, которая изменяет узел студента, программа просто внезапно заканчивается, вместо того, чтобы возвращаться в меню. Почему это так и как я могу это исправить?
Вот функция модификации, которая работает неправильно:
void modifyStudentNode()
{
int id = 0;
struct student *ptr, *prev, *currPtr;
if(start==NULL)
{
printf("\nStudent List does not contain data\n");
}
else
{
printf("\nPlease enter the student ID of the student whose records you wish to modify: \n");
scanf("%d",&id);
fflush(stdin);
for(currPtr = start; (currPtr)&&((currPtr->student_id)!= id); prev = currPtr, currPtr = currPtr->next);
if(currPtr == NULL)
printf("\nStudent not Found\n");
else
{
printf("\nCurrent values for Student Id %d are: ", id);
printf("Student Name: %s\n", currPtr->student_name);
printf("Student GPA: %.2f\n", currPtr->gpa);
printf("Student Date of Registration: %d/%d/%d\n\n", currPtr->dt_of_reg.month,currPtr->dt_of_reg.day,currPtr->dt_of_reg.year);
printf("\nEnter modified values for Student Id %d: \n", id);
printf("Enter Student's Modified Name:\n");
scanf("%[^\t\n]s",&currPtr->student_name);
fflush(stdin);
printf("Enter Student's Modified GPA:\n");
scanf("%f",&currPtr->gpa);
fflush(stdin);
printf("Enter Student's Modified Date of Registration (mm/dd/yyyy):\n");
scanf("%d/%d/%d", &currPtr->dt_of_reg.month,currPtr->dt_of_reg.day,currPtr->dt_of_reg.year);
fflush(stdin);
}
}
}