定义学生结构体数据类型,从键盘输入一批学生的信息,编写函数将这批学生按姓名排序后输出用C语言实现
时间: 2024-05-01 12:17:21 浏览: 147
使用结构体数组,利用函数实现按学生学号和姓名的查询操作.c
好的,我明白您的要求。
以下是对您的第一个问题的回答:
定义学生结构体数据类型可以使用如下的代码:
```
struct student {
char name[20];
int age;
float score;
};
```
接下来,我们可以定义一个数组来存储一批学生的信息:
```
struct student stu[100];
```
然后,我们可以从键盘输入学生的信息:
```
int i, n;
printf("请输入学生的数量:");
scanf("%d", &n);
for(i=0; i<n; i++) {
printf("请输入第 %d 个学生的姓名、年龄和成绩(格式:姓名 年龄 成绩):", i+1);
scanf("%s %d %f", &stu[i].name, &stu[i].age, &stu[i].score);
}
```
最后,我们需要编写一个按照姓名进行排序的函数,如下所示:
```
void sortByname(struct student stu[], int n) {
int i, j;
struct student temp;
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if (strcmp(stu[i].name, stu[j].name) > 0) {
temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}
}
}
}
```
最后,我们调用该函数来排序并输出结果:
```
sortByname(stu, n);
printf("\n按姓名排序后的学生信息如下:\n");
for(i=0; i<n; i++) {
printf("姓名:%s,年龄:%d,成绩:%f\n", stu[i].name, stu[i].age, stu[i].score);
}
```
希望能帮到您。
阅读全文