#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 19:53:20 浏览: 133
这段代码是一个学生信息管理系统的代码,定义了一个结构体类型 Student,包含三个成员变量:学号、姓名和成绩。同时还定义了一个宏 MAX_STUDENT 表示最大学生数为 100。
定义了一个结构体数组 students,用来存储多个学生的信息,同时定义了一个 student_count 变量表示当前学生数。
代码中有两个函数,一个是成绩录入函数 add_student,用于从控制台输入新的学生信息,并将其加入到学生信息数组中。另一个是打印成绩单函数 print_students,用于将学生信息数组中的所有学生信息打印出来。
在打印成绩单函数中,先判断 student_count 是否为 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");
}
```
这个函数接受两个参数,一个是通讯录结构体指针,另一个是要修改的学生在通讯录中的下标。函数会根据用户输入来修改学生的信息,修改完成后会输出提示信息。注意,函数没有对用户输入进行校验,实际应用中需要加入相应的校验逻辑。
#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;
}
```
阅读全文