请定义一个描述学生基本信息的结构,包括姓名、学号、身份证号、年龄、性别,并定义一个结构体数组。编程:1编写函数input(),输入学生基本信息(3~5条记录)2编写函数print(),输出全体记录信息;3编写函数search(),检索一个指定的学生姓名并返回,由主函数打印到屏幕上;说明:访问结构的时候,运算符前是结构体变量时用“.”,是指向结构体变量的指针时用“->”。
时间: 2023-05-17 08:05:57 浏览: 96
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
以下是CSDN开发的C知道的回答:
1. 定义学生基本信息的结构体和结构体数组的代码如下:
```
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
struct Student {
char name[20];
char id[20];
char id_card[20];
int age;
char gender[10];
};
struct Student students[MAX_STUDENT_NUM];
int student_num = 0;
void input() {
printf("Please input student information:\n");
while (student_num < MAX_STUDENT_NUM) {
printf("Student %d:\n", student_num + 1);
printf("Name: ");
scanf("%s", students[student_num].name);
printf("Student ID: ");
scanf("%s", students[student_num].id);
printf("ID Card Number: ");
scanf("%s", students[student_num].id_card);
printf("Age: ");
scanf("%d", &students[student_num].age);
printf("Gender: ");
scanf("%s", students[student_num].gender);
student_num++;
printf("Continue to input? (y/n)");
char c;
scanf(" %c", &c);
if (c == 'n' || c == 'N') {
break;
}
}
}
void print() {
printf("All student information:\n");
for (int i = 0; i < student_num; i++) {
printf("Student %d:\n", i + 1);
printf("Name: %s\n", students[i].name);
printf("Student ID: %s\n", students[i].id);
printf("ID Card Number: %s\n", students[i].id_card);
printf("Age: %d\n", students[i].age);
printf("Gender: %s\n", students[i].gender);
}
}
void search(char* name) {
for (int i = 0; i < student_num; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("Student information:\n");
printf("Name: %s\n", students[i].name);
printf("Student ID: %s\n", students[i].id);
printf("ID Card Number: %s\n", students[i].id_card);
printf("Age: %d\n", students[i].age);
printf("Gender: %s\n", students[i].gender);
return;
}
}
printf("Cannot find student %s\n", name);
}
int main() {
input();
print();
char name[20];
printf("Please input student name to search: ");
scanf("%s", name);
search(name);
return 0;
}
```
2. 以上代码实现了输入学生基本信息、输出全体记录信息、检索指定学生姓名并返回的功能。运行程序后,按照提示输入学生信息,输入完毕后可以选择继续输入或者退出。输入完毕后,可以输出全体记录信息。然后,输入要搜索的学生姓名,程序会返回该学生的信息。如果找不到该学生,则会提示“Cannot find student [name]”。
3. 注意,以上代码并没有使用结构体指针,因此没有用到“->”运算符。如果要使用结构体指针,可以将结构体数组改为结构体指针,并在函数参数中传入指针。
阅读全文