检查 int main(void) { struct person p[N]; int cmd, n; n=read(p);//读入信息到结构体数组 while (1) { cmd = prompt(); switch(cmd){ case 0: save(p,n);//将身份证号码正确的数据写入文件 return 0; case 1: display_person(p,n,1);//显示校验位正确的公民信息 break; case 2: display_person(p,n,0);//显示校验位错误的公民信息 break; case 3: birth_sort(p,n);// 将正确的公民信息按出生日期排序 break; case 4: char name[20]; printf("请输入姓名;"); scanf("%S",name); int count=search(p,n,name);//在正确的公民信息中查找指定同名同姓的人 printf("与%s同名的人数为:%d\n",name,count); break; default: printf("无效的选项!\n"); break; } } return 0; }
时间: 2023-06-25 17:03:52 浏览: 67
这段代码有一些问题:
1. 函数 read(p) 没有定义,无法确定其功能和返回值类型。
2. 在函数 display_person(p,n,1) 和 display_person(p,n,0) 中,第三个参数应该是一个布尔类型的值,而不是数字。
3. 在函数 scanf("%S",name) 中,应该使用小写字母 s,而不是大写字母 S。
4. 在函数 search(p,n,name) 中,应该将参数 name 改为指针类型,即 char *name。
5. 在函数 search(p,n,name) 中,应该返回查找到的同名同姓的人数,而不是直接输出。
6. 在函数 birth_sort(p,n) 中,排序算法没有指定,可能会出现错误。
7. 在 while 循环中,缺少读入用户输入的代码,导致程序无法响应用户操作。
8. 在 switch 语句中,缺少针对每个选项的具体操作代码,需要补充完整。
建议修改后再进行测试。
阅读全文
相关推荐


















