请定义一个描述学生基本信息的结构,包括姓名、学号、身份证号、年龄、性别等,并定义一个结构体数组。编程: 1. 编写函数input(),输入学生基本信息(3~5条记录) 2. 编写函数print(),输出全体记录信息; 3. 编写函数search(),检索一个指定的学生姓名并返回,由主函数打印到屏幕上; 4. 说明:访问结构的时候,运算符前是结构体变量时用“.”,是指向结构体变量的指针时用“->”
时间: 2023-05-17 10:05:42 浏览: 727
好的,我可以回答这个问题。以下是定义学生基本信息结构体和结构体数组的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 5
struct Student {
char name[20];
char id[20];
char id_card[20];
int age;
char gender[10];
};
struct Student students[MAX_STUDENTS];
void input() {
for (int i = 0; i < MAX_STUDENTS; i++) {
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的学号:", i+1);
scanf("%s", students[i].id);
printf("请输入第%d个学生的身份证号:", i+1);
scanf("%s", students[i].id_card);
printf("请输入第%d个学生的年龄:", i+1);
scanf("%d", &students[i].age);
printf("请输入第%d个学生的性别:", i+1);
scanf("%s", students[i].gender);
}
}
void print() {
for (int i = 0; i < MAX_STUDENTS; i++) {
printf("姓名:%s,学号:%s,身份证号:%s,年龄:%d,性别:%s\n",
students[i].name, students[i].id, students[i].id_card, students[i].age, students[i].gender);
}
}
void search(char *name) {
for (int i = 0; i < MAX_STUDENTS; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("姓名:%s,学号:%s,身份证号:%s,年龄:%d,性别:%s\n",
students[i].name, students[i].id, students[i].id_card, students[i].age, students[i].gender);
return;
}
}
printf("没有找到名字为%s的学生\n", name);
}
int main() {
input();
print();
char name[20];
printf("请输入要查找的学生姓名:");
scanf("%s", name);
search(name);
return 0;
}
```
在这个程序中,我们定义了一个名为`Student`的结构体,包含了姓名、学号、身份证号、年龄和性别等基本信息。我们还定义了一个结构体数组`students`,用于存储多个学生的信息。
接下来,我们编写了三个函数:`input()`用于输入学生基本信息,`print()`用于输出全体记录信息,`search()`用于检索一个指定的学生姓名并返回。
在`input()`函数中,我们使用了一个循环,输入3~5条学生基本信息。在`print()`函数中,我们同样使用了一个循环,输出所有学生的基本信息。在`search()`函数中,我们使用了一个循环,查找指定姓名的学生信息,如果找到了就输出,否则输出提示信息。
最后,在`main()`函数中,我们先调用`input()`函数输入学生基本信息,然后调用`print()`函数输出所有记录信息。接着,我们输入要查找的学生姓名,调用`search()`函数查找并输出该学生的信息。
阅读全文