| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 506 人关注过本帖
标题:看看链表输出哪里错了。
取消只看楼主 加入收藏
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
结帖率:94.12%
收藏
 问题点数:0 回复次数:4 
看看链表输出哪里错了。
程序代码:
#include<stdio.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define HEADER1 " ------------------------------------图书信息-------------------------------\n"
#define HEADER2 "|   编号   |  书名  |  作者  |  类型  |    借出时间    |   借阅人  |\n"
#define HEADER3 "|------------|--------|--------|--------|----------------|-----------|\n"
#define FORMAT  "|   %d     |  %s    |  %s    |  %s    |       %s       |     %s    |\n"
#define     END " ----------------------------------------------------------------------------\n"
#define DATA p->code,p->name,p->author,p->type,p->time,p->UserID
struct Book
{
    int code;     //书本编号(唯一性)
    char name[20];     //书本名称
    char author[15];     //书本作者
    char type[15];       //书本类型
    char *time;     //书本借出时间
    char UserID[10];       //借阅该书的人的借书证号
    struct Book *next;
};
struct Book *head_book=NULL;      //图书信息链表头指针
void DataPrint()//输出图书信息链表
{
    struct Book *p;
    p=head_book;
    printf(HEADER1);
    printf(HEADER2);
    if(head_book!=NULL){
        do
        {
            printf(FORMAT,DATA);
            p=p->next;
        }while(p!=NULL);
        printf(END);
    }
    else printf("没有图书信息!");

}
void BookAdd()//建立图书信息链表
{
    struct Book *p1,*p2;
    if(head_book==NULL)
    {
        printf("当前没有图书信息!,按任意键开始录入!");
        getch();
        system("cls");
        printf(HEADER1);
        head_book=p1=p2=(struct Book *)malloc(sizeof(struct Book));
        printf("编号:");
        scanf("%d",&p1->code);
        getchar();
        printf("书名:");
        gets(p1->name);
        printf("作者:");
        gets(p1->author);
        printf("类型:");
        gets(p1->type);
        while(p1->code!=0)
        {
            p2->next=p1;
            p2=p1;
            p1=(struct Book *)malloc(sizeof(struct Book));
            printf("编号:");
            scanf("%d",&p1->code);
            getchar();
            printf("书名:");
            gets(p1->name);
            printf("作者:");
            gets(p1->author);
            printf("类型:");
            gets(p1->type);
       
        }
        p2->next=NULL;
    }
    else
    {
        p1=head_book;
        while(p1->next!=NULL)
            p1=p1->next;
        p2=p1;
        p1=(struct Book *)malloc(sizeof(struct Book));
        printf("编号:");
        scanf("%d",&p1->code);
        getchar();
        printf("书名:");
        gets(p1->name);
        printf("作者:");
        gets(p1->author);
        printf("类型:");
        gets(p1->type);
        while(p1->code!=0)
        {
            p2->next=p1;
            p2=p1;
            p1=(struct Book *)malloc(sizeof(struct Book));
            printf("编号:");
            scanf("%d",&p1->code);
            getchar();
            printf("书名:");
            gets(p1->name);
            printf("作者:");
            gets(p1->author);
            printf("类型:");
            gets(p1->type);       
        }
        p2->next=NULL;
    }
}
void main()
{
    BookAdd();
    DataPrint();
}
搜索更多相关主题的帖子: 看看 图书 
2013-05-18 15:55
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
收藏
得分:0 
输出老是报错。。
2013-05-18 16:10
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
收藏
得分:0 
建立链表没有问题,已经调试验证,就是输出有问题。。。
2013-05-18 16:33
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
收藏
得分:0 
竟然栽在输出的问题上。。。
2013-05-18 16:49
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
收藏
得分:0 
原因已找到,链表内的数据有些没有初始化。。
2013-05-18 17:12
快速回复:看看链表输出哪里错了。
数据加载中...
 
   



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

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