1.用结构体数组存放从键盘输入的 5 名学生证件信息,包括学号、姓名、性别、民族、出生年月日、出生地、学院和发证日期。按“出生地” 查找来自某一地区的学生,并输出来自该地区的学生信息。
时间: 2023-07-10 16:09:29 浏览: 100
以下是一个可能的 C 语言实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 50 // 假设各字符串最长为 50
typedef struct {
char id[20];
char name[MAX_LEN];
char gender[5];
char nation[MAX_LEN];
char birthday[MAX_LEN];
char birthplace[MAX_LEN];
char college[MAX_LEN];
char issue_date[MAX_LEN];
} Student;
int main() {
Student students[5]; // 存放 5 名学生信息的结构体数组
int i;
// 从键盘输入 5 名学生的证件信息
for (i = 0; i < 5; i++) {
printf("请输入第 %d 位学生的证件信息:\n", i + 1);
printf("学号:");
scanf("%s", students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("性别:");
scanf("%s", students[i].gender);
printf("民族:");
scanf("%s", students[i].nation);
printf("出生年月日:");
scanf("%s", students[i].birthday);
printf("出生地:");
scanf("%s", students[i].birthplace);
printf("学院:");
scanf("%s", students[i].college);
printf("发证日期:");
scanf("%s", students[i].issue_date);
}
// 按“出生地”查找学生
char target_place[MAX_LEN]; // 目标出生地
printf("请输入要查找的出生地:");
scanf("%s", target_place);
printf("以下是来自 %s 的学生列表:\n", target_place);
for (i = 0; i < 5; i++) {
if (strcmp(students[i].birthplace, target_place) == 0) {
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", students[i].id, students[i].name,
students[i].gender, students[i].nation, students[i].birthday,
students[i].birthplace, students[i].college, students[i].issue_date);
}
}
return 0;
}
```
该程序首先定义了一个 `Student` 结构体用于存放学生证件信息,然后创建了一个长度为 5 的 `Student` 数组 `students`,用于存放 5 名学生信息。接着使用循环从键盘输入这些学生的证件信息。
程序中使用了一个 `strcmp` 函数来比较字符串是否相等,如果 `students[i].birthplace` 和 `target_place` 相等,则说明该学生来自目标出生地,将其证件信息输出即可。
阅读全文