用void display person(struct person p[],int n,int flag)函数输出每个公民信息的函数,其中数组p存放n个公民信息。当参数flag=1时,输出正确公民信息和人数,当flag=0时,输出错误公民信息和人数的代码
时间: 2024-03-12 15:47:25 浏览: 48
解析sizeof, strlen, 指针以及数组作为函数参数的应用
下面是用C语言编写的void display_person(struct person p[], int n, int flag)函数:
```c
void display_person(struct person p[], int n, int flag) {
int i, count = 0;
printf("************\n");
if (flag == 1) {
printf("正确公民信息:\n");
for (i = 0; i < n; i++) {
if (p[i].is_valid) {
printf("姓名:%s,年龄:%d,身份证号:%s\n", p[i].name, p[i].age, p[i].id);
count++;
}
}
printf("共有%d个正确公民信息\n", count);
} else {
printf("错误公民信息:\n");
for (i = 0; i < n; i++) {
if (!p[i].is_valid) {
printf("姓名:%s,年龄:%d,身份证号:%s\n", p[i].name, p[i].age, p[i].id);
count++;
}
}
printf("共有%d个错误公民信息\n", count);
}
printf("************\n");
}
```
解释如下:
- 参数p[]:存放n个公民信息的数组。
- 参数n:公民信息的数量。
- 参数flag:标志位,当flag=1时,输出正确公民信息和人数,当flag=0时,输出错误公民信息和人数。
- 变量i:循环计数器。
- 变量count:统计正确或错误公民信息的数量。
- 如果flag=1,输出正确公民信息。循环遍历数组p[],如果p[i].is_valid为真,则输出该公民的姓名、年龄和身份证号,并将count加1。
- 输出正确公民信息的总数。
- 如果flag=0,输出错误公民信息。循环遍历数组p[],如果p[i].is_valid为假,则输出该公民的姓名、年龄和身份证号,并将count加1。
- 输出错误公民信息的总数。
阅读全文