c语言定义学员结构体包括:学号(int),姓名,成绩(float),编写代码 (要求分函数实现) a) 创建多个学员数组并初始化 b) 添加一个学员,学号需要去重 c) 打印所有学员信息
时间: 2023-06-06 14:04:26 浏览: 278
回答:你好,我可以回答你关于C语言定义学员结构体的问题。以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT_NUM 100 // 最多学生数
// 学员结构体
struct Student
{
int id; // 学号
char name[20]; // 姓名
float score; // 成绩
};
struct Student students[MAX_STUDENT_NUM]; // 存储所有学员信息的数组
int student_count = 0; // 学员数量
// 添加学员
void add_student(int id, char name[], float score)
{
// 学号去重
for (int i = 0; i < student_count; i++)
{
if (students[i].id == id)
{
printf("学号重复,添加学员失败!\n");
return;
}
}
// 添加学员
struct Student student = {id, "", score};
strcpy(student.name, name);
students[student_count] = student;
student_count++;
printf("添加学员成功!\n");
}
// 打印所有学员信息
void print_students()
{
printf("学号\t姓名\t成绩\n");
for (int i = 0; i < student_count; i++)
{
printf("%d\t%s\t%.2f\n", students[i].id, students[i].name, students[i].score);
}
}
int main()
{
// 初始化学员数组
add_student(1001, "张三", 85);
add_student(1002, "李四", 90.5);
// 添加一个学员
add_student(1003, "王五", 92.5);
// 再次添加学号重复的学员
add_student(1002, "赵六", 87);
// 打印所有学员信息
print_students();
return 0;
}
```
希望能对你有所帮助。
阅读全文