某班级有10名同学,请编写程序完成如下功能:
录入并保存10位同学的姓名。
依次输出这10位同学的姓名。
根据用户输入的姓名,查找该同学是否存在。
按照序号更改某位同学的姓名。
对所有同学姓名按照字典序排序。
利用函数分模块完成上述功能,然后在主函数中调用执行。
能敲一下吗
非常感谢
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#define NUM_STUDENTS 10 // 班级人数
// 学生信息结构体
typedef struct {
char name[20]; // 姓名
} Student;
// 函数声明
void print_students(const Student* students); // 依次输出这10位同学的姓名
bool search_student(const Student* students, const char* name); // 根据用户输入的姓名,查找该同学是否存在
void update_student(Student* students, int index, const char* name); // 按照序号更改某位同学的姓名
void sort_students(Student* students); // 对所有同学姓名按照字典序排序
int main()
{
Student students[NUM_STUDENTS]; // 学生信息数组
// 录入并保存10位同学的姓名
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("请输入第%d位同学的姓名:", i + 1);
scanf("%s", students[i].name);
}
print_students(students);
char name[20];
printf("请输入要查找的学生的姓名:");
scanf("%s", name);
if (search_student(students, name)) {
printf("该学生存在。\n");
} else {
printf("该学生不存在。\n");
}
int index;
printf("请输入要更改的学生的序号(1 ~ %d):", NUM_STUDENTS);
scanf("%d", &index);
printf("请输入新的姓名:");
scanf("%s", name);
update_student(students, index - 1, name);
print_students(students);
sort_students(students);
print_students(students);
return 0;
}
// 依次输出这10位同学的姓名
void print_students(const Student* students)
{
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("第%d位同学的姓名是 %s。\n", i + 1, students[i].name);
}
}
// 根据用户输入的姓名,查找该同学是否存在
bool search_student(const Student* students, const char* name)
{
for (int i = 0; i < NUM_STUDENTS; i++) {
if (strcmp(students[i].name, name) == 0) {
return true;
}
}
return false;
}
// 按照序号更改某位同学的姓名
void update_student(Student* students, int index, const char* name)
{
strcpy(students[index].name, name);
}
// 对所有同学姓名按照字典序排序
void sort_students(Student* students)
{
// 选择排序法
for (int i = 0; i < NUM_STUDENTS - 1; i++) {
int min_index = i; // 最小值的下标
for (int j = i + 1; j < NUM_STUDENTS; j++) {
if (strcmp(students[j].name, students[min_index].name) < 0) {
min_index = j;
}
}
// 交换
Student temp = students[i];
students[i] = students[min_index];
students[min_index] = temp;
}
}
这种代码,如果你很是想要的话,建议你去悬赏!!在这种免费的地方,很难有人专门帮你敲这个代码的!!
其实,最简单的还是,你带着自己写好的代码来!!对于哪儿不懂得,可以提问,我们肯定会帮你分析的!!但是,你一个代码片段也没有,就让我们白帮忙写一个代码……??__
之前我也是这样过来的,熟悉了就好了!!
在做