| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 479 人关注过本帖
标题:单链表按值查找总是出错【求助】·
只看楼主 加入收藏
q1826050194
Rank: 2
等 级:论坛游民
帖 子:67
专家分:19
注 册:2011-3-7
结帖率:77.78%
收藏
已结贴  问题点数:14 回复次数:8 
单链表按值查找总是出错【求助】·
#include<stdio.h>
#include<stdlib.h>
 typedef struct node
{
    char data;
    struct node *next;
}linklist;

linklist *creat(linklist *head)
{        char ch;
        linklist *p,*s;
        head=(linklist*)malloc(sizeof(linklist));
        p=head;
        ch=getchar();
        while(ch!='$')
        {
            s=(linklist*)malloc(sizeof(linklist));//(linklist*)malloc(sizeof(linklist));
            s->data=ch;
            p->next=s;
            p=s;
            ch=getchar();        }
        p->next=NULL;
        return head;
}
linklist *locate(linklist *abc)
{
    char a;
    linklist *p;
    printf("请输入你要查找的值:\n");
    scanf("%c",&a);
    p=abc->next;
    while(p!=NULL)//查找值的操作
    if(p->data!=a)
    p=p->next;
    else
    break;
    return p;
}
int main()
{
    linklist *head;
    linklist *shu,*shuzi;
    shu=creat(head);
    shuzi=locate(shu);
    printf("%c",shuzi->data);
    return 0;
}
搜索更多相关主题的帖子: include 
2011-03-29 21:33
q1826050194
Rank: 2
等 级:论坛游民
帖 子:67
专家分:19
注 册:2011-3-7
收藏
得分:0 
希望大侠们帮帮手····
2011-03-29 21:42
q1826050194
Rank: 2
等 级:论坛游民
帖 子:67
专家分:19
注 册:2011-3-7
收藏
得分:0 
没有人能帮帮手么?
2011-03-29 22:14
shinan77
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:87
专家分:188
注 册:2010-9-24
收藏
得分:14 
linklist *locate(linklist *abc)
{
    char a;
    linklist *p;
    printf("请输入你要查找的值:\n");
    scanf("%c",&a);//问题出在这一行!!!!!!!
    p=abc->next;
    while(p!=NULL)   
    if(p->data!=a)
    p=p->next;
    else
    break;
    return p;
}
楼主,你忽略了一个严重的问题。你在getchar()之后,敲了回车键,这个回车键的字符会被scanf捕捉到,所以,scanf语句传入的是你的回车符,导致你不能输入数据!!可以这么改:
scanf(" %c",&a);//
没错,在%c之前加个空格,哈哈,一定要掌握这个技巧啊···

--------将学到的东西为我所用,这才是学习的目的 --------
2011-03-29 22:32
q1826050194
Rank: 2
等 级:论坛游民
帖 子:67
专家分:19
注 册:2011-3-7
收藏
得分:0 
回复 4楼 shinan77
啊····刚刚试了一下,果然是这样,太感谢你了,又学会了一样东西···
2011-03-29 22:35
shinan77
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:87
专家分:188
注 册:2010-9-24
收藏
得分:0 
楼主,学C语言最重要的就是动手自己编程,只有这样才能发现问题,并且解决它!!!继续努力啊!!
以后再用scanf的时候要小心哦

--------将学到的东西为我所用,这才是学习的目的 --------
2011-03-29 22:38
q1826050194
Rank: 2
等 级:论坛游民
帖 子:67
专家分:19
注 册:2011-3-7
收藏
得分:0 
回复 4楼 shinan77
请问为什么在其前面加了个空格就可以的呢?
2011-03-29 22:41
shinan77
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:87
专家分:188
注 册:2010-9-24
收藏
得分:0 
scanf(" %c",&a);你在之前输入的回车键传给了%c前面的空格,然后从键盘输入的数据才传给a。

--------将学到的东西为我所用,这才是学习的目的 --------
2011-03-29 22:48
q1826050194
Rank: 2
等 级:论坛游民
帖 子:67
专家分:19
注 册:2011-3-7
收藏
得分:0 
回复 8楼 shinan77
原来是这样。谢谢你了。
2011-03-29 22:52
快速回复:单链表按值查找总是出错【求助】·
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048898 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved