选修某课程的学生有5人,学生的信息包括学号、姓名、性别、出生年月日,按学号由低到高对学生排序,输出排序后的学生信息。c语言,结构体
时间: 2024-02-21 17:58:26 浏览: 70
使用结构体数组,利用函数实现按学生学号和姓名的查询操作.c
下面是一份可以实现该功能的C语言代码,使用结构体存储学生信息,按照学号排序并输出:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 5
struct student {
int id;
char name[20];
char gender[10];
char birthdate[20];
};
int cmp(const void *a, const void *b)
{
struct student *s1 = (struct student *)a;
struct student *s2 = (struct student *)b;
return s1->id - s2->id;
}
int main()
{
struct student students[MAX_STUDENTS] = {
{1001, "Tom", "Male", "1990-01-01"},
{1003, "Jerry", "Male", "1991-02-02"},
{1002, "Mary", "Female", "1992-03-03"},
{1004, "Lucy", "Female", "1993-04-04"},
{1005, "Bob", "Male", "1994-05-05"}
};
qsort(students, MAX_STUDENTS, sizeof(struct student), cmp);
printf("ID\tName\tGender\tBirthdate\n");
for (int i = 0; i < MAX_STUDENTS; i++) {
printf("%d\t%s\t%s\t%s\n", students[i].id, students[i].name, students[i].gender, students[i].birthdate);
}
return 0;
}
```
该程序首先定义了一个结构体`student`,表示学生信息,包括学号、姓名、性别、出生年月日。然后定义了一个函数`cmp`,用于作为`qsort`函数的比较函数,按照学号从小到大排序。接着在`main`函数中初始化了一个学生数组,并使用`qsort`函数对其进行排序。最后按照要求输出排序后的学生信息。
阅读全文