2 baidu 30249707 baidu_30249707 于 2016.04.02 09:40 提问

图书馆图书查找功能~~~我想问下这个函数有没有哪里错~我是渣渣

 #include "bookrecord.h"
void search( BOOK *top){
    char choose[25],input[30];
    int cn=0;
    BOOK *p;
    ASK(p);
    for(;;)
    {
    if(count==0)
    {
        printf("这是空表,还没有记录!\n");
        return ;
    }
    printf("1.通过出版社\n");
    printf("2.通过主编\n");
    printf("3.通过书名\n");
    printf("请选择1-3:\n");
    gets(choose);
    while(1)
    {
        cn=atoi(choose);
        if(cn<0||cn>3)
        {
            printf("输入错误,重新选择1-3:");
            gets(choose);
        }
        else break;
    }
    switch(cn)
    {
    case 1:
        printf("请输入出版社:");
        break;
    case 2:
        printf("请输入主编:");
        break;
    case 3:
        printf("请输入书名:");
        break;
    }
    gets(input);
    p=top;
    while(p!=NULL)
    {
        if((cn==1&&strcmp(input,p->press)==0)||(cn==2&&strcmp(input,p->author_name)==0)||(cn==3&&strcmp(input,p->name)==0))
        {
            if(p==top)
            {
                printf("author_name\t press\t year\t edition\t name\t ISBN\t price\t total\t lend\t left\n");
                printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->author_name,p->press,p->year,p->edition,p->name,p->ISBN,p->price,p->total,p->lend,p->left);
                break;
            }
            else
            {
                p=p->next;  
                if(p==NULL)break;
            }
            if(p==NULL)
            {
                printf("你所查询的书没找到!\n");
            }
            else
            {
                printf("找到了如下信息:");
            }
            printf("author_name\t press\t year\t edition\t name\t ISBN\t price\t total\t lend\t left\n");
            printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->author_name,p->press,p->year,p->edition,p->name,p->ISBN,p->price,p->total,p->lend,p->left);
        }
    }
    }
}




3个回答

baidu_30249707
baidu_30249707   2016.04.02 09:42
    if(cn<0||cn>3)
baidu_30249707
baidu_30249707   2016.04.02 09:45

!像这样输入之后就没反应了图片说明

haroldfinch
haroldfinch 看起来没有错误阿,能说清楚一些吗
一年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.04.02 13:55

感觉并没有什么错,到while(p!=NULL)之前,读入以及判断的代码都是对的
while循环里我们没法帮你看了,除非楼主发上完整的代码

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!