利用C语言当中的结构体知识,建立学生结构体Stu,对应的属性有name(姓名),id(学号),score(分数),完成程序删除学生信息效果
时间: 2023-06-26 11:09:44 浏览: 93
下面是一个简单的示例程序,演示如何使用结构体来实现学生信息的删除功能。在这个程序中,我们首先定义了一个名为Stu的结构体,它包含了三个属性:name、id和score。然后,我们创建了一个学生数组,并向其中添加了一些学生信息。接下来,我们通过循环遍历整个数组,查找要删除的学生信息,并将其从数组中删除。
```
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
typedef struct {
char name[50];
int id;
float score;
} Stu;
int main() {
int i, n, id_to_delete;
Stu students[MAX_STUDENTS];
// 添加一些学生信息
students[0].id = 1001;
strcpy(students[0].name, "张三");
students[0].score = 90.0;
students[1].id = 1002;
strcpy(students[1].name, "李四");
students[1].score = 85.5;
students[2].id = 1003;
strcpy(students[2].name, "王五");
students[2].score = 92.5;
n = 3;
// 输出所有学生信息
printf("所有学生信息:\n");
for (i = 0; i < n; i++) {
printf("%d\t%s\t%.1f\n", students[i].id, students[i].name, students[i].score);
}
// 输入要删除的学生编号
printf("请输入要删除的学生编号:");
scanf("%d", &id_to_delete);
// 查找要删除的学生信息,并将其从数组中删除
for (i = 0; i < n; i++) {
if (students[i].id == id_to_delete) {
printf("删除成功!\n");
for (; i < n - 1; i++) {
students[i] = students[i+1];
}
n--;
break;
}
}
if (i == n) {
printf("未找到该学生!\n");
}
// 输出删除后的学生信息
printf("删除后的学生信息:\n");
for (i = 0; i < n; i++) {
printf("%d\t%s\t%.1f\n", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
在上面的程序中,我们使用了一个for循环来遍历整个学生数组。对于每个学生,我们都判断其学号是否等于要删除的学生编号。如果是,我们就将其从数组中删除,并将数组长度减1。最后,我们再次使用for循环输出删除后的学生信息。
需要注意的是,在删除学生信息时,我们使用了一个嵌套的for循环,这个循环将删除学生的位置之后的所有学生向前移动了一位。这样做的目的是为了保证数组中的所有学生信息都是连续的,没有空洞。
阅读全文