编写一个程序程序中包含学生结构体用来储存学生信息定义数组输入5个学生的信息并按学生姓名在字母表中的排列顺序然后输出要求程序中用到typedef关键词
时间: 2024-10-22 12:19:02 浏览: 26
学生成绩管理系统c语言程序设计
在C语言中,我们可以使用`typedef`关键字来创建一个新的数据类型名,以便于后续代码的编写和理解。假设我们有一个名为`Student`的学生结构体,包含姓名和年龄两个成员。首先,我们需要定义这个结构体:
```c
// 使用typedef定义学生类型
typedef struct {
char name[50]; // 学生姓名
int age; // 年龄
} Student;
```
接下来,我们可以创建一个函数来接收学生的输入,并利用数组存储5个学生的信息:
```c
void inputStudents(Student students[], int size) {
for (int i = 0; i < size; i++) {
printf("请输入第 %d 位学生的姓名和年龄:\n", i + 1);
scanf("%s%d", students[i].name, &students[i].age);
}
}
// 按名字排序函数,这里只是一个简单的冒泡排序示例
void sortByName(Student students[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - 1 - i; j++) {
if (strcmp(students[j].name, students[j + 1].name) > 0) {
// 交换学生记录
Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
}
```
最后,我们可以调用这些函数并输出排序后的学生列表:
```c
int main() {
const int numStudents = 5;
Student students[numStudents];
inputStudents(students, numStudents);
sortByName(students, numStudents);
printf("\n按姓名字母顺序排列的学生信息:\n");
for (int i = 0; i < numStudents; i++) {
printf("姓名:%s, 年龄:%d\n", students[i].name, students[i].age);
}
return 0;
}
```
阅读全文