我正在尝试编写一个程序,它将从用户那里获取信息,并且用户可以选择做什么。选项包括添加、修改、删除、显示某些信息、查找平均值和退出。我已经为所有这些编写了代码,但我无法让我的删除功能工作。这是我的代码:
void delete_student(struct students *list, int *count) //Delete's Selected student
{
int id4;
int k;
if (*count != 0)
{
printf("\nEnter the ID of the student you wish to delete: ");
scanf("%d\n", &id4);
for (int i = 0; i < *count; i++) //Searches for the selected student
{
k = i;
if (list[i].id == id4)
{
printf("\nStudent found.\nDeleting...\n");
for (int c = k; c < *count; c++) //Deletes the student if found
{
list[c].id = list[c + 1].id;
strcpy(list[c].name, list[c + 1].name);
list[c].age = list[c + 1].age;
strcpy(list[c].dept, list[c + 1].dept);
list[c].grade = list[c + 1].grade;
}
*count = *count - 1;
printf("\nDeletion Complete.\n");
break;
}
else
printf("\nStudent not found. Please try again.\n");
break;
}
}
else
printf("\nNo student's to delete.\n");
}
编辑:当我通过程序并选择使用此功能时,它会询问我“ID”,然后它什么也不做,并且有一个闪烁的光标。
有人可以告诉我我做错了什么吗?如果需要,还有更多代码。
这是如何删除最后一个元素:
list[*count].id = 0;
strcpy(list[*count].name, NULL);
list[*count].age = 0;
strcpy(list[*count].dept, NULL);
list[*count].grade = 0;