struct Student *del()
{
struct Student *p;
p = Stu;
int i = 0;
int number;
printf("请选择你要删除的学生的学号\n");
scanf("%d", &number);
while (p[i].id != number && i < count)
{
i++;
}
if (p[i].id == number)
{
for (; i < count; i++)
{
p[i] = p[i + 1];
}
count--;
}
else
{
printf("查无此人!\n");
}
printf("删除完毕!\n");
return Stu;
};
大一学生,求一个c语言代码解析呀
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
语言-逆行者 2023-06-01 21:43关注// 定义函数 del,用于删除学生结构体数组中指定学号的学生记录 struct Student *del() { // 定义指向结构体为 Student 类型的指针 p,并将结构体数组 Stu 的地址赋值给它 struct Student *p; p = Stu; // 定义循环变量 i 和要删除的学生学号 number int i = 0; int number; // 提示用户选择要删除的学生学号 printf("请选择你要删除的学生的学号\n"); // 读取用户输入的学号 scanf("%d", &number); // 在数组中查找指定学号的学生记录 while (p[i].id != number && i < count) { i++; } // 如果找到指定学号的学生记录 if (p[i].id == number) { // 将该学生记录后面的所有记录向前移动一位,相当于删除了该学生记录 for (; i < count; i++) { p[i] = p[i + 1]; } // 数组元素个数减一 count--; } else { // 如果没有找到指定学号的学生记录,则输出提示信息 printf("查无此人!\n"); } // 输出删除完毕提示语句,然后返回结构体数组 Stu 的地址 printf("删除完毕!\n"); return Stu; };本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 1无用