标题:一个病人看病的程序,始终有错误,请高手指点!
只看楼主
青密
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-5-13
结帖率:0
已结贴  问题点数:20 回复次数:2 
一个病人看病的程序,始终有错误,请高手指点!
#include <stdio.h>
#include <malloc.h>
typedef struct qnode{
    int data;
    struct qnode *next;
}qnode, *queueptr;   //结点类型;
typedef struct {
    queueptr front;
    queueptr rear;
}linkqueue;             // 链队类型;


void initqueue(linkqueue &q){

   
    q->front=q->rear=(queueptr)malloc(sizeof(qnode));    //创建空队;
    if (!q->front) exit(-2);
    q->front->next =NULL;
}
void main()
{
    int no=0;
    linkqueue *q;
    initqueue(&q);
    qnode *p;
    printf("输入病历号: \n");
    scanf("%d",&no);
    p=(queueptr)malloc(sizeof(qnode));   //创建结点;
            p->data =no;
            p->next =NULL;
            if(q->rear ==NULL)       //第一个病人排队;
            {
                q->front =q->rear =p;
            }
            else{
                q->rear ->next =p;
                q->rear =p;
            }
            printf("出现\n");
}
搜索更多相关主题的帖子: 看病 include 
2011-05-13 15:47
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
得分:10 
很多错误在编译的时候就出来啦

还是自己多看看  
2011-05-14 09:59
灿烂烟火
Rank: 2
来 自:湖北武汉
等 级:论坛游民
帖 子:12
专家分:36
注 册:2011-5-10
得分:10 
定义*q后没有初始化,就使用q指向队列的队首和队尾的操作非法。如
void initqueue(linkqueue &q){   
    q->front=q->rear=(queueptr)malloc(sizeof(qnode));    //创建空队;
     if (!q->front) exit(-2);
     q->front->next =NULL;
 }
 中q->front=q->rear=(queueptr)malloc(sizeof(qnode));
q->front->next =NULL;均为非法操作。主函数中的此类操作同样非法。
2011-05-19 22:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-339734-1-1.html




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

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