用C语言写下面程序:有一学生信息包含学号、姓名、性别、年龄、电话等信息,要求设以一个结构体用于存储该学生信息,实现学生信息的输入和显示。说明:(1)使用结构体实现学生信息的存储(学生的个数和学生信息用户键盘输入)(2)按照序号顺序排列学生信息(选择排序)(3)实现按照序号查找学生信息(用户键盘输入序号)
时间: 2023-12-23 10:02:25 浏览: 85
下面是实现以上功能的C语言程序:
```
#include <stdio.h>
#include <string.h>
//定义学生结构体(包含学号、姓名、性别、年龄和电话)
struct Student {
int number;
char name[20];
char gender[5];
int age;
char phone[15];
};
//输入学生信息,返回学生个数
int input_students(struct Student students[]) {
int num = 0;
printf("请输入学生信息:\n");
//循环输入多个学生信息,直到输入“0”为止
while (1) {
printf("请输入第%d个学生的学号(输入0结束):", num + 1);
scanf("%d", &students[num].number);
if (students[num].number == 0) {
break; //输入"0"表示结束输入
}
printf("请输入第%d个学生的姓名:", num + 1);
scanf("%s", students[num].name);
printf("请输入第%d个学生的性别:", num + 1);
scanf("%s", students[num].gender);
printf("请输入第%d个学生的年龄:", num + 1);
scanf("%d", &students[num].age);
printf("请输入第%d个学生的电话号码:", num + 1);
scanf("%s", students[num].phone);
num++; //更新学生个数
}
return num;
}
//按照序号顺序排列学生信息(选择排序)
void sort_students(struct Student students[], int num) {
for (int i = 0; i < num - 1; i++) {
int min_index = i;
for (int j = i + 1; j < num; j++) {
if (students[j].number < students[min_index].number) {
min_index = j;
}
}
if (min_index != i) {
struct Student temp = students[min_index];
students[min_index] = students[i];
students[i] = temp;
}
}
}
//显示所有学生信息
void display_students(struct Student students[], int num) {
printf("\n所有的学生信息:\n");
for (int i = 0; i < num; i++) {
printf("学号:%d,姓名:%s,性别:%s,年龄:%d,电话:%s\n",
students[i].number, students[i].name, students[i].gender,
students[i].age, students[i].phone);
}
}
//按照序号查找学生信息,返回学生索引
int search_student(struct Student students[], int num, int number) {
for (int i = 0; i < num; i++) {
if (students[i].number == number) {
return i;
}
}
return -1; //返回-1表示未找到
}
int main() {
struct Student students[100];
int num = input_students(students);
sort_students(students, num);
display_students(students, num);
printf("\n请输入要查找的学生的学号:");
int number;
scanf("%d", &number);
int index = search_student(students, num, number);
if (index == -1) {
printf("未找到学号为%d的学生\n", number);
} else {
printf("找到学号为%d的学生,姓名:%s,性别:%s,年龄:%d,电话:%s\n",
students[index].number, students[index].name, students[index].gender,
students[index].age, students[index].phone);
}
return 0;
}
```
阅读全文