在上述条件下给出函数输入人名并调用search函数查询重名人数
时间: 2023-12-24 11:05:56 浏览: 22
好的,下面是调用 `search` 函数查询重名人数的示例代码:
```c
#include <stdio.h>
#include <string.h>
struct person {
char name[20];
int age;
char gender;
int is_valid;
};
int search(struct person p[], int n, char *name);
int main() {
struct person p[5] = {
{"Alice", 20, 'F', 1},
{"Bob", 22, 'M', 1},
{"Charlie", 25, 'M', 0},
{"Alice", 30, 'F', 1},
{"David", 28, 'M', 1},
};
char name[20];
printf("请输入要查询的姓名:");
scanf("%s", name);
int count = search(p, 5, name);
printf("%s 的重名人数为 %d\n", name, count);
return 0;
}
```
该示例代码定义了一个 `person` 结构体,包含了姓名、年龄、性别、是否为正确的公民等信息。在 `main` 函数中,我们定义了一个包含 5 个元素的 `person` 数组 `p`,并初始化了其中的元素。然后,我们通过 `scanf` 函数输入要查询的姓名 `name`,并调用 `search` 函数查询重名人数。最后,我们输出查询结果。
需要注意的是,这里假定输入的姓名不超过 20 个字符。如果需要支持更长的姓名,需要根据实际情况修改代码。