1 个回答
提问:我想问一下,如果是这样的代码,怎么改能使重名的人一起输出?
case 2:printf("请输入要查询的姓名:");gets(xm);i=chaxun_xingming(xm);if(i==0){printf("没有找到符合条件的记录\n"); system("pause");getchar();}else{ printf("%-7s %-7s %-7s %-7d %-15s %-15ld %-15s %-15s %-15s\n","工号","姓名","性别","年龄","电话号码","工资","部门","学历","地址"); printf("%-7s%-7s%-7s%-7d%-15s%-15ld%-15s%-15s%-15s,info[i].order,info[i].name,info[i].sex,&info[i].age,info[i].tele,info[i].income,info[i].department,info[i].edu,info[i].address); system("pause");getchar();}/******************************************功能:按姓名查询(3.2)参数:char xm[]返回值:i+1 或 0*******************************************/int chaxun_xingming(char xm[]){int i;for(i=0;i<N;i++){if(strstr(info[i].name,xm)!=NULL)return i+1;}return 0;}
网友回答:
case 2:
printf("请输入要查询的姓名:");
gets(xm);
i=chaxun_xingming(xm,name);//加一个数组进去存储是哪个人,返回值是符合总人数
if(i==0)
{
printf("没有找到符合条件的记录\n");
system("pause");
getchar();
}
else
{
while(i--){
printf("%-7s %-7s %-7s %-7d %-15s %-15ld %-15s %-15s %-15s\n","工号","姓名","性别","年龄","电话号码","工
资","部门","学历","地址");
printf("%-7s%-7s%-7s%-7d%-15s%-15ld%-15s%-15s%-15s\n",info[name[i]].order,info[name[i]].name,info[name
[i]].sex,&info[name[i]].age,info[name[i]].tele,info[name[i]].income,info[name[i]].department,info[name
[i]].edu,info[name[i]].address);
}
system("pause");
getchar();
}
/******************************************
功能:按姓名查询(3.2)
参数:char xm[] int name[100]
返回值:符合条件的人数
*******************************************/
int chaxun_xingming(char xm[],int name[100])//最多返回100个同名人
{
int people=0;
for(i=0;i<N;i++)
{
if(strstr(info[i].name,xm)!=NULL){
name[peolpe]=i+1;
++people;
}
return people;
}