用C语言写下面程序:有一学生信息包含学号、姓名、性别、年龄、电话等信息,要求设以一个结构体用于存储该学生信息,实现学生信息的输入和显示。说明:(1)使用结构体实现学生信息的存储(学生的个数和学生信息用户键盘输入)(2)按照序号顺序排列学生信息(选择排序)(3)实现按照序号查找学生信息(用户键盘输入序号)
时间: 2023-12-23 22:02:25 浏览: 143
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
好的,以下是用C语言实现上述程序的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 50 // 最大学生数
#define MAX_NAME_LEN 20 // 最大姓名长度
#define MAX_PHONE_LEN 11 // 最大电话号码长度
// 学生信息结构体
typedef struct {
int id;
char name[MAX_NAME_LEN];
char gender;
int age;
char phone[MAX_PHONE_LEN];
} Student;
// 学生信息数组
Student students[MAX_STUDENT_NUM];
// 学生个数
int student_num = 0;
// 交换两个学生的信息
void swap(Student *s1, Student *s2) {
Student temp = *s1;
*s1 = *s2;
*s2 = temp;
}
// 按照学号顺序排序学生信息
void sort_students() {
for (int i = 0; i < student_num - 1; i++) {
for (int j = i + 1; j < student_num; j++) {
if (students[i].id > students[j].id) {
swap(&students[i], &students[j]);
}
}
}
}
// 显示所有学生信息
void show_students() {
printf("序号\t姓名\t性别\t年龄\t电话\n");
for (int i = 0; i < student_num; i++) {
printf("%d\t%s\t%c\t%d\t%s\n", students[i].id, students[i].name, students[i].gender, students[i].age, students[i].phone);
}
}
// 按照学号查找学生信息
void find_student() {
int id;
printf("请输入要查找的学生序号:");
scanf("%d", &id);
for (int i = 0; i < student_num; i++) {
if (students[i].id == id) {
printf("序号\t姓名\t性别\t年龄\t电话\n");
printf("%d\t%s\t%c\t%d\t%s\n", students[i].id, students[i].name, students[i].gender, students[i].age, students[i].phone);
return;
}
}
printf("未找到该学生!\n");
}
int main() {
printf("请输入学生个数(最多%d个):", MAX_STUDENT_NUM);
scanf("%d", &student_num);
for (int i = 0; i < student_num; i++) {
printf("请输入第%d个学生的信息(学号、姓名、性别、年龄、电话):", i + 1);
scanf("%d %s %c %d %s", &students[i].id, students[i].name, &students[i].gender, &students[i].age, students[i].phone);
}
sort_students();
show_students();
find_student();
return 0;
}
```
这个程序中,我们定义了一个 `Student` 结构体来存储学生信息,并使用一个 `students` 数组来存储所有学生的信息。程序先让用户输入学生个数和每个学生的信息,然后按照学号顺序排序并显示所有学生信息,最后让用户输入一个序号查找学生信息。程序使用了简单的选择排序算法来排序学生信息,可以在输入量很少的情况下正常运行。如果需要处理更多的学生信息,可以考虑使用更高效的排序算法(比如快速排序)。
阅读全文