| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 618 人关注过本帖
标题:查找问题
只看楼主 加入收藏
小J
Rank: 8Rank: 8
等 级:等待验证会员
威 望:1
帖 子:282
专家分:704
注 册:2009-6-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
查找问题

typedef struct student
{
    char name[20];
    char addr[100];
    char tele[20];
    struct student *next;
}stu;
void find(stu *head)
{
    stu *p;
    char *name;
    name=malloc(10);
    p=head;
    system("cls");
    printf("请输入你要查找的人的姓名:");
    scanf("%s",name);
    while(p!=NULL)
    {
        if(strcmp(p->name,name)==0)
        {
            printf("该人的信息如下:\n");
            printf("姓名:%s\n地址:%s\n电话:%s\n",p->name,p->addr,p->tele);
        }
        else
        {
            p=p->next;
        }
    }
    if(p==NULL)
    {
        printf("找不到该人的信息,请确认拼写是否真确!\n");
    }


程序太长,故只把有问题的一段贴上来。为了大家清楚我吧定义的结构体也贴在前面了。请大家帮我分析分析哪里出错了。编译的时候没错,测试的时候有问题。我估计是那个strcmp()里面的问题,但是不知道该怎么改。帮帮忙吧……
2009-12-24 16:29
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:10 
我不知道你运行的时候出现了什么错误,不过现在看来,有错误两处:

1,指针 name 的空间开得太小,只有 10 个;

2,如果找到了该人的信息,即应 break 跳出循环,否则最后的找不到该人信息会一直出现。


2009-12-24 16:56
小J
Rank: 8Rank: 8
等 级:等待验证会员
威 望:1
帖 子:282
专家分:704
注 册:2009-6-18
收藏
得分:0 
回复 2楼 广陵绝唱
谢谢你的提醒!
在编译的时候没问题,就是测试这段程序的时候出现内存错误!我吧内存加大后还是出现内存错误!
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 小J 于 2009-12-24 17:10 编辑 ]
2009-12-24 17:00
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:10 
最好把全部的程序发上来,然后才好找错误的地方。
2009-12-24 17:24
小J
Rank: 8Rank: 8
等 级:等待验证会员
威 望:1
帖 子:282
专家分:704
注 册:2009-6-18
收藏
得分:0 
好的。
project.rar (215.77 KB)
2009-12-24 17:29
小J
Rank: 8Rank: 8
等 级:等待验证会员
威 望:1
帖 子:282
专家分:704
注 册:2009-6-18
收藏
得分:0 
找到问题没啊各位大侠们!
2009-12-24 20:18
小J
Rank: 8Rank: 8
等 级:等待验证会员
威 望:1
帖 子:282
专家分:704
注 册:2009-6-18
收藏
得分:0 
没人知道错在哪里了吗
2009-12-24 20:29
快速回复:查找问题
数据加载中...
 
   



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

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