C语言已知有n个学生,每个学生信息包含学号、姓名、性别、3门课程成绩,现在请你设计函数,当输入某个学号时,存在该学生则输出学生的全部信息,若不存在,则输出Not Found。
时间: 2023-12-16 19:13:45 浏览: 258
好的,我可以帮你设计这个函数。首先,我们需要定义一个结构体来存储学生的信息,包括学号、姓名、性别和3门课程成绩。然后,我们可以使用一个数组来存储所有学生的信息。
下面是一个示例代码:
```
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
struct student {
int id;
char name[50];
char gender;
float scores[3];
};
struct student students[MAX_STUDENTS];
int num_students = 0;
void add_student(int id, char* name, char gender, float* scores) {
struct student s = { id, "", gender, { 0 } };
strcpy(s.name, name);
memcpy(s.scores, scores, sizeof(float) * 3);
students[num_students++] = s;
}
void print_student_info(int id) {
int i;
for (i = 0; i < num_students; i++) {
if (students[i].id == id) {
printf("ID: %d\nName: %s\nGender: %c\nScores: %.2f %.2f %.2f\n",
students[i].id, students[i].name, students[i].gender,
students[i].scores[0], students[i].scores[1], students[i].scores[2]);
return;
}
}
printf("Not Found\n");
}
int main() {
// 添加一些学生信息
add_student(1001, "Alice", 'F', (float[]){ 80.0, 90.0, 85.0 });
add_student(1002, "Bob", 'M', (float[]){ 75.0, 85.0, 90.0 });
add_student(1003, "Charlie", 'M', (float[]){ 90.0, 80.0, 95.0 });
// 查询学生信息
print_student_info(1002);
print_student_info(1004);
return 0;
}
```
在这个示例代码中,我们定义了一个结构体 `student` 来存储学生的信息,包括学号、姓名、性别和3门课程成绩。我们使用一个全局数组 `students` 来存储所有学生的信息,使用一个全局变量 `num_students` 来记录学生的数量。
首先,我们定义了一个函数 `add_student` 来添加学生信息。这个函数会创建一个新的 `student` 结构体,并将其添加到数组 `students` 中。
接着,我们定义了一个函数 `print_student_info` 来查询学生信息。这个函数会遍历数组 `students`,查找与给定学号相同的学生信息。如果找到了,就输出学生的全部信息;否则,输出 Not Found。
在 `main` 函数中,我们添加了一些学生信息,并查询了学号分别为 1002 和 1004 的学生信息。你可以根据需要修改这些信息,或者添加更多的学生信息。
阅读全文