酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

现在有一个班的学生,学生包括学号、姓名、数据结构分数 1、建立一个顺序存储结构存储学生的信息 初始包含: 学号姓名分数 1王令98 3张成67 5陈晨74 2、查询学号为5号学生的姓名和成绩? 3、向顺序存储结构中插入学号:8,姓名:李时,分数:89的学生信息,插入到顺序表中第 2号位置? 4、计算顺序表中学生平均分? 用c语言实现

这是一个简单的C语言程序,用于实现你的需求。这个程序使用了一个结构体数组来表示顺序存储结构,并实现了查询、插入和计算平均分的功能。 ```c #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 100 typedef struct { int id; char name[20]; int score; } Student; // 初始化顺序表 void initStudent(Student students[], int n) { students[0] = (Student){1, "王令", 98}; students[1] = (Student){3, "张成", 67}; students[2] = (Student){5, "陈晨", 74}; } // 查询学生信息 void queryStudent(Student students[], int n, int id) { for(int i = 0; i < n; i++) { if(students[i].id == id) { printf("学号: %d, 姓名: %s, 分数: %d\n", students[i].id, students[i].name, students[i].score); return; } } printf("未找到该学生信息\n"); } // 插入学生信息 void insertStudent(Student students[], int *n, int id, char name[], int score, int position) { if(*n >= MAX_SIZE) { printf("顺序表已满,无法插入\n"); return; } for(int i = *n; i > position - 1; i--) { students[i] = students[i - 1]; } students[position - 1] = (Student){id, name, score}; (*n)++; } // 计算平均分 float calculateAverage(Student students[], int n) { int totalScore = 0; for(int i = 0; i < n; i++) { totalScore += students[i].score; } return (float)totalScore / n; } int main() { Student students[MAX_SIZE]; int n = 3; initStudent(students, n); queryStudent(students, n, 5); insertStudent(students, &n, 8, "李时", 89, 2); printf("\n插入后:\n"); for(int i = 0; i < n; i++) { printf("学号: %d, 姓名: %s, 分数: %d\n", students[i].id, students[i].name, students[i].score); } float avg = calculateAverage(students, n); printf("\n平均分: %.2f\n", avg); return 0; } ``` 这个程序首先定义了一个`Student`结构体来存储学生信息,然后初始化了一个顺序表,接着实现了查询、插入和计算平均分的函数。在主函数中,我们调用这些函数来完成任务。注意,这个程序假设顺序表的起始索引是1,而不是0。 [2024-07-20 20:27:40 | AI写代码神器 | 642点数解答]

相关提问