c语言选修某课程的学生有5人,学生的信息包括学号、姓名、性别、出生年月日,按学号由低到高对学生排序,输出排序后的学生信息。
时间: 2024-03-08 09:46:58 浏览: 59
好的,这是一个关于C语言的问题。针对你的问题,我来给出一个示例代码:
```c
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct student{
char id[10];
char name[20];
char gender[5];
char birth[20];
}stu[5];
int main(){
int i, j;
struct student temp;
// 输入学生信息
for(i=0; i<5; i++){
printf("请输入第%d个学生的学号、姓名、性别、出生年月日,中间用空格隔开:\n", i+1);
scanf("%s%s%s%s", stu[i].id, stu[i].name, stu[i].gender, stu[i].birth);
}
// 按学号排序
for(i=0; i<5; i++){
for(j=i+1; j<5; j++){
if(strcmp(stu[i].id, stu[j].id) > 0){
temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}
}
}
// 输出排序后的学生信息
printf("排序后的学生信息为:\n");
for(i=0; i<5; i++){
printf("%s\t%s\t%s\t%s\n", stu[i].id, stu[i].name, stu[i].gender, stu[i].birth);
}
return 0;
}
```
这个示例代码中,我们定义了一个`student`结构体,包含了学生的学号、姓名、性别、出生年月日。首先,我们通过循环输入学生信息,然后使用冒泡排序法按照学号排序。最后,我们再次循环输出排序后的学生信息。
阅读全文