#include <stdio.h> #include <string.h> #define MAX_STUDENT 100 // 最大学生数 struct Student { char id[20]; // 学号 char name[20]; // 姓名 int score; // 成绩 }; // 学生信息数组 struct Student students[MAX_STUDENT]; int student_count = 0; // 成绩录入函数 void add_student() { struct Student s; printf("请输入学生学号:"); scanf("%s", s.id); printf("请输入学生姓名:"); scanf("%s", s.name); printf("请输入学生成绩:"); scanf("%d", &s.score); students[student_count++] = s; // 将新学生信息加入数组中 } // 打印成绩单函数 void print_students() { if (student_count == 0) { printf("暂无学生信息\n"); return; } printf("学号\t姓名\t成绩\n"); for (int i = 0; i < student_count; i++) { printf("%s\t%s\t%d\n", students[i].id, students[i].name, students[i].score); } }解释一下
时间: 2024-03-07 17:53:21 浏览: 104
这是一个学生信息管理系统的代码,包含以下几个部分:
- 宏定义:定义了最大学生数为 100。
- 结构体定义:包含学号、姓名和成绩三个成员变量。
- 学生信息数组:用于存储多个学生的信息,初始化时数组长度为最大学生数。
- 学生数变量:用于记录当前学生数。
- 成绩录入函数:从控制台输入新的学生信息,并将其加入到学生信息数组中。
- 打印成绩单函数:将学生信息数组中的所有学生信息按照学号、姓名、成绩的格式打印出来。
在这个代码中,可以通过调用成绩录入函数和打印成绩单函数来实现学生信息的录入和查询。可以通过修改宏定义来改变最大学生数。同时,也可以添加其他的函数来实现更多的功能,比如删除学生信息、修改学生信息等。
相关问题
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 100 // 学生信息结构体 typedef struct { char num[10]; // 学号 char name[10]; // 姓名 char clas[10]; // 班级 char sex[10]; // 性别 float score; // 成绩 } Student; // 学生信息数组 Student studentList[MAX_SIZE]; int size = 0; 帮我添加一个可以查询学生成绩最大值和最小值的分函数代码
可以添加以下代码来实现查询学生成绩最大值和最小值的函数:
```c
// 查询学生成绩最大值和最小值
void findMinMaxScore() {
float maxScore = 0, minScore = 100;
for (int i = 0; i < size; i++) {
if (studentList[i].score > maxScore) {
maxScore = studentList[i].score;
}
if (studentList[i].score < minScore) {
minScore = studentList[i].score;
}
}
printf("成绩最高的学生信息:\n");
for (int i = 0; i < size; i++) {
if (studentList[i].score == maxScore) {
printf("学号:%s 姓名:%s 班级:%s 性别:%s 成绩:%.2f\n",
studentList[i].num, studentList[i].name,
studentList[i].clas, studentList[i].sex,
studentList[i].score);
}
}
printf("成绩最低的学生信息:\n");
for (int i = 0; i < size; i++) {
if (studentList[i].score == minScore) {
printf("学号:%s 姓名:%s 班级:%s 性别:%s 成绩:%.2f\n",
studentList[i].num, studentList[i].name,
studentList[i].clas, studentList[i].sex,
studentList[i].score);
}
}
}
```
在主函数中,可以通过调用该函数来查询学生成绩最大值和最小值:
```c
int main() {
// 添加学生信息
// ...
// 查询学生成绩最大值和最小值
findMinMaxScore();
return 0;
}
```
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_NAME_LEN 20 #define MAX_ADDRESS_LEN 50 #define MAX_SEX_LEN 5 #define MAX_PHONE_LEN 11 #define MAX_STUDENT_NUM 1000 // 定义学生结构体 typedef struct { char name[MAX_NAME_LEN]; char address[MAX_ADDRESS_LEN]; char SEX[MAX_SEX_LEN]; char phone[MAX_PHONE_LEN]; } Student; // 定义通讯录结构体 typedef struct { Student students[MAX_STUDENT_NUM]; int num_students; } AddressBook;请写一段修改学生信息的代码
好的,可以参考下面的代码实现修改学生信息:
```c
void modifyStudentInfo(AddressBook *addressBook, int index) {
Student *student = &(addressBook->students[index]);
printf("请输入学生姓名:\n");
scanf("%s", student->name);
printf("请输入学生地址:\n");
scanf("%s", student->address);
printf("请输入学生性别:\n");
scanf("%s", student->SEX);
printf("请输入学生电话号码:\n");
scanf("%s", student->phone);
printf("修改成功!\n");
}
```
这个函数接受两个参数,一个是通讯录结构体指针,另一个是要修改的学生在通讯录中的下标。函数会根据用户输入来修改学生的信息,修改完成后会输出提示信息。注意,函数没有对用户输入进行校验,实际应用中需要加入相应的校验逻辑。
阅读全文