实现3个基础功能如添加和删除学生信息 查看学生成绩,使用c语言,使用3种基础结果,使用指针数组等知识
在C语言中,我们可以使用结构体(struct)来存储学生的信息,使用数组或链表来存储学生数据的集合,使用函数来完成添加、删除和查看学生信息的功能。
以下是一个简单的例子来展示这三个功能:
#include <stdio.h>
#define MAX_STUDENTS 100 // 最大学生数量
// 定义学生信息的结构体
struct Student {
int id; // 学生ID
char name[50]; // 学生姓名
float score; // 学生成绩
};
// 创建一个存储学生信息的数组
struct Student students[MAX_STUDENTS];
// 当前学生数量
int num_students = 0;
// 添加学生信息的函数
void add_student(int id, char *name, float score) {
if (num_students >= MAX_STUDENTS) {
printf("学生数量已达上限!\n");
return;
}
students[num_students].id = id;
strcpy(students[num_students].name, name);
students[num_students].score = score;
num_students++;
}
// 删除学生信息的函数
void delete_student(int id) {
int i;
for (i = 0; i < num_students; i++) {
if (students[i].id == id) {
for (int j = i; j < num_students - 1; j++) {
students[j] = students[j + 1];
}
num_students--;
return;
}
}
printf("未找到ID为 %d 的学生!\n", id);
}
// 查看学生成绩的函数
void view_student_scores() {
int i;
for (i = 0; i < num_students; i++) {
printf("ID: %d, Name: %s, Score: %.2f\n", students[i].id, students[i].name, students[i].score);
}
}
int main() {
// 添加学生信息
add_student(1, "张三", 88.5);
add_student(2, "李四", 92.5);
add_student(3, "王五", 85.0);
// 查看学生成绩
view_student_scores();
// 删除一个学生的信息
delete_student(2);
// 再次查看学生成绩
view_student_scores();
return 0;
}
注意:此代码中的字符串拷贝函数 strcpy
需要包含头文件 #include <string.h>
。如果是在现代的编程环境下,可能需要使用更安全的字符串拷贝函数 strncpy
来防止缓冲区溢出。
以上代码是一个非常基础的例子,对于更复杂的情况(如学生数量不固定,需要动态分配内存;需要按照成绩排序等),需要用到更多的编程技巧和数据结构知识。
不知道你这个问题是否已经解决, 如果还没有解决的话:void func(int* a,int len){};