在Linux中,结构体指针编程:定义一个结构体,其成员变量为“学号”、“姓名”、“成绩”,再定义一个该结构体变量的数组s

动态 未结 0 1
邮箱用户_b2v3t
邮箱用户_b2v3t LV1 2小时前 发表
摘要:
在Linux中,结构体指针编程:定义一个结构体,其成员变量为“学号”、“姓名”、“成绩”,再定义一个该结构体变量的数组s[5],并给数组s中的每个成员变量赋值,利用多文件编程方法编写源文件和头文件完成下列任务:(1)编写一个文件,要求文件中是main函数用来定义结构体,和结构体数组变量s[5],并给5名学生的成员变量赋值,分别调用下面两个文件中的函数完成成绩排序和显示不及格学生信息。(2)编写一个文件要求文件中的函数实现将s[5]中的成绩按照升序排序,并在main函数中显示排序后的5名学生信息。(3)编写一个文件要求文件中的函数实现将s[5]中的成绩不及格的学生信息在main函数中显示出来。
为了完成这个任务,我们将创建三个文件:一个头文件(`student.h`)用于声明结构体和函数原型,一个源文件(`main.c`)用于定义结构体数组并调用函数,以及另外两个源文件(`sort_scores.c` 和 `display_failing.c`)分别用于实现成绩排序和显示不及格学生信息的函数。 首先是头文件 `student.h`: ```c #ifndef STUDENT_H #define STUDENT_H #define STUDENT_COUNT 5 #define PASSING_SCORE 60 typedef struct { int id; char name[50]; int score; } Student; void sortScores(Student students[], int count); void displayFailingStudents(const Student students[], int count); #endif // STUDENT_H ``` 接下来是 `main.c` 文件,它包含 `main` 函数,用于定义结构体数组并调用其他文件中的函数: ```c #include #include "student.h" int main() { Student s[STUDENT_COUNT] = { {1, "Alice", 85}, {2, "Bob", 55}, {3, "Charlie", 95}, {4, "David", 45}, {5, "Eve", 75} }; sortScores(s, STUDENT_COUNT); printf("Sorted student scores:\n"); for (int i = 0; i < STUDENT_COUNT; ++i) { printf("%d, %s, %d\n", s[i].id, s[i].name, s[i].score); } printf("\nFailing students:\n"); displayFailingStudents(s, STUDENT_COUNT); return 0; } ``` 现在是 `sort_scores.c` 文件,它包含实现成绩排序的函数: ```c #include "student.h" void sortScores(Student students[], int count) { for (int i = 0; i < count - 1; ++i) { for (int j = 0; j < count - i - 1; ++j) { if (students[j].score > students[j + 1].score) { Student temp = students[j]; students[j] = students[j + 1]; students[j + 1] = temp; } } } } ``` 最后是 `display_failing.c` 文件,它包含实现显示不及格学生信息的函数: ```c #include #include "student.h" void displayFailingStudents(const Student students[], int count) { for (int i = 0; i < count; ++i) { if (students[i].score < PASSING_SCORE) { printf("%d, %s, %d\n", students[i].id, students[i].name, students[i].score); } } } ``` 在编译时,你需要同时编译 `main.c`, `sort_scores.c`, 和 `display_failing.c` 文件。以下是一个可能的编译命令: ```sh gcc -o student_program main.c sort_scores.c display_failing.c ``` 这将生成一个可执行文件 `student_program`,你可以运行它来看到排序后的学生信息和不及格的学生信息。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复