定义学生结构体struct Student类型如下: char id[10]; //学号 char Name[20];//姓名 double Score[3];//3门课程成绩 定义并初始化struct Student数组stus[10],显示stus数组数据,输入学生学号,查找该生的数据;删除符合某个条件的所有学生数据;建立struct Student类型的变量并赋值,将该变量插入到stus数组的末尾。用c语言编写
时间: 2024-01-23 11:02:24 浏览: 155
以下是实现上述功能的C语言代码:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char id[10];
char Name[20];
double Score[3];
} Student;
int main() {
// 初始化学生数组
Student stus[10] = {
{"001", "张三", {90, 88, 92}},
{"002", "李四", {78, 85, 80}},
{"003", "王五", {92, 94, 88}},
{"004", "赵六", {85, 80, 90}},
{"005", "钱七", {88, 90, 86}},
{"006", "孙八", {91, 84, 89}}
};
int n = 6; // 学生个数
// 显示学生数据
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\n");
for (int i = 0; i < n; i++) {
printf("%s\t%s\t%.2f\t%.2f\t%.2f\n", stus[i].id, stus[i].Name, stus[i].Score[0], stus[i].Score[1], stus[i].Score[2]);
}
// 查找学生
char searchId[10];
printf("请输入要查找的学生学号:");
scanf("%s", searchId);
int found = 0;
for (int i = 0; i < n; i++) {
if (strcmp(stus[i].id, searchId) == 0) {
printf("查找结果:\n");
printf("学号:%s\n姓名:%s\n成绩1:%.2f\n成绩2:%.2f\n成绩3:%.2f\n", stus[i].id, stus[i].Name, stus[i].Score[0], stus[i].Score[1], stus[i].Score[2]);
found = 1;
break;
}
}
if (!found) {
printf("未找到该学生!\n");
}
// 删除符合条件的学生数据
double threshold = 90; // 删除成绩大于等于90分的学生
int count = 0;
for (int i = 0; i < n; i++) {
if (stus[i].Score[0] >= threshold && stus[i].Score[1] >= threshold && stus[i].Score[2] >= threshold) {
count++;
} else {
stus[i - count] = stus[i];
}
}
n -= count;
printf("删除符合条件的学生数据后,剩余%d个学生:\n", n);
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\n");
for (int i = 0; i < n; i++) {
printf("%s\t%s\t%.2f\t%.2f\t%.2f\n", stus[i].id, stus[i].Name, stus[i].Score[0], stus[i].Score[1], stus[i].Score[2]);
}
// 插入学生数据
Student newStu = {"007", "周九", {88, 92, 86}};
stus[n] = newStu;
n++;
printf("插入新学生后,共%d个学生:\n", n);
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\n");
for (int i = 0; i < n; i++) {
printf("%s\t%s\t%.2f\t%.2f\t%.2f\n", stus[i].id, stus[i].Name, stus[i].Score[0], stus[i].Score[1], stus[i].Score[2]);
}
return 0;
}
```
这段代码实现了定义并初始化学生结构体数组、显示学生数据、查找学生、删除符合条件的学生数据以及插入新学生数据等功能。其中,通过循环遍历数组并使用strcmp函数进行字符串比较来查找学生;通过循环遍历数组并使用条件语句来删除符合条件的学生;通过将新学生数据赋值给数组的最后一个元素来插入新学生数据。
阅读全文