[求助]链表结点查找的调用!
链表结点的查找!struct Addresslist *find(struct Addresslist *p,int n,char *string)
{
int flag=1;
while((p!=NULL))
{
switch(n)
{
case 1:flag=strcmp(string,p->name); break;
case 2:flag=strcmp(string,p->score); break;
}
if(flag==0)
return p;
else
p=p->next;
}
return NULL;
}
问题:这个函数在主函数中怎么样调用?
----------------解决方案--------------------------------------------------------
我的目的是想输出这个函数返回值的结果
----------------解决方案--------------------------------------------------------
int main(void)
{
struct Addresslist *result = NULL;
...
result = find(p, n, str);
printf("%s: %s\n", result->name, result->score);
...
return 0;
}
----------------解决方案--------------------------------------------------------
Addresslist *p;
p = find(...);
if(p = NULL)
printf("NULL");
else
输出 p的内容;
----------------解决方案--------------------------------------------------------
Javal那个方法好像不行,我都试过了
----------------解决方案--------------------------------------------------------
int main()
{
struct Addresslist *h;
struct Addresslist *q;
char str[20];
int a;
h=create();
print(h);
printf("输入要查找结点的项目:");
scanf("%d",&a);
printf("输入要查找的目标:\n");
gets(str);
q=find(h,a,str);
if(q==NULL)
printf("为空指针!\n");
else
printf("姓名:%s\n分数:%s\n",p->name,p->score);
}
我是这样调用
----------------解决方案--------------------------------------------------------
为什么程序跳过了gets(str)这个语句啊,要是把gets(str)改成scanf("%s",str)就没有跳过?
----------------解决方案--------------------------------------------------------