/*定义学员结构体包括:学号(int),姓名,成绩(float),编写代码 (要求分函数实现) a) 创建多个学员数组并初始化 b) 添加一个学员,学号需要去重 c) 打印所有学员信息*/
时间: 2024-05-03 20:20:31 浏览: 75
这个问题属于技术问题,我可以回答。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 50
// 学员结构体
typedef struct {
int id; // 学号
char name[20]; // 姓名
float score; // 成绩
} Student;
// 全局变量
Student students[MAX_STUDENTS]; // 存储学员信息的数组
int numStudents = 0; // 当前学员数量
// 根据学号查找学员在数组中的下标,如果不存在返回 -1
int findStudentById(int id) {
for (int i = 0; i < numStudents; i++) {
if (students[i].id == id) {
return i;
}
}
return -1;
}
// 添加一个学员,学号需要去重
void addStudent(int id, char* name, float score) {
// 判断学号是否已存在
if (findStudentById(id) != -1) {
printf("学号 %d 已存在,无法添加!\n", id);
return;
}
// 添加新学员
students[numStudents].id = id;
strcpy(students[numStudents].name, name);
students[numStudents].score = score;
numStudents++;
printf("添加学员成功!姓名:%s,学号:%d,成绩:%.1f\n", name, id, score);
}
// 打印所有学员信息
void printAllStudents() {
printf("所有学员信息:\n");
printf("学号\t姓名\t成绩\n");
printf("------------------------\n");
for (int i = 0; i < numStudents; i++) {
printf("%d\t%s\t%.1f\n", students[i].id, students[i].name, students[i].score);
}
}
int main() {
// 创建多个学员数组并初始化
addStudent(1001, "张三", 89.5);
addStudent(1002, "李四", 78.0);
addStudent(1003, "王五", 93.2);
// 添加一个学员,学号需要去重
addStudent(1002, "赵六", 85.6); // 学号已存在,无法添加
addStudent(1004, "孙七", 67.8); // 添加成功
// 打印所有学员信息
printAllStudents();
return 0;
}
```
阅读全文