题目要求
输入n个姓名建立链,并查找一个人名,如查到则输出其表中位置,查不到则输出-1.
输入描述
先输入n,然后输入n个姓名。再输入一个待查的姓名。
输出描述
输出查询结果,查到则输出链表中序号,否则输出-1
输入样例
3
Tom John Mike
John
输出样例
2
代码`
#include <stdio.h>
#include <malloc.h>
#include <string.h>
typedef struct Node
{
char name[20];
struct Node * next;
} Node, *LinkList;
/*单独一个a代表地址,这里不能对字符串直接比较,用strcmp函数间接比较 */
int SearchList(LinkList link, char *a)
{
static int i=1;
int flag=0;
LinkList p=link->next;
while(p)
{
if(strcmp(p->name,a)==0)
{
flag=1;
return i;
}
p=p->next;
i++;
}
if(flag==0) return -1;
return i;
}
int main()
{
LinkList link;
char a[20];
int i,n,r;
Node *p,*last;
link=(LinkList) malloc (sizeof(Node));
link->next=NULL;
last=link;
scanf("%d", &n);
for(i=0;i<n;i++)
{
p=(Node *) malloc (sizeof(Node));
scanf("%s",p->name);
p->next=NULL;
last->next=p;
last=p;
}
scanf("%s",a);
r=SearchList(link,a);
printf("%d",r );
return 0;
}