| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 405 人关注过本帖
标题:通过队来模拟病人就诊,但有问题
只看楼主 加入收藏
维海
Rank: 2
等 级:论坛游民
帖 子:23
专家分:53
注 册:2010-11-25
结帖率:100%
收藏
 问题点数:0 回复次数:0 
通过队来模拟病人就诊,但有问题
#include <stdio.h>
#include <stdlib.h>

typedef struct p{
   char num[20];
   struct p *next;
}patient;
void initque(patient *&head,patient *&rail)
{
    patient *p;
    p=(patient *)malloc(sizeof(patient));
    p->next=NULL;
    head=rail=p;

}
void enque(patient *&head,patient *&rail)
{
    patient *q1;
    q1=(patient *)malloc(sizeof(patient));
    scanf("%s",q1->num);
    rail->next=q1;
    rail=q1;
}
char * outque(patient *&head,patient *&rail)
{
    patient *q1;

    if(head->next==rail)
    {

        return rail->num;
        free(rail);
        rail=head;
    }
    else
    {
        q1=head->next;
        head->next=q1->next;
        return q1->num;
        free(q1);
    }

}
int main()
{
    patient *head,*rail;
    initque(head,rail);
    char lin;
    scanf("%c",&lin);
    while(1)
    {
        if (lin=='a'||lin=='A')
        {
            enque(head,rail);
        }
        else if(lin=='n'||lin=='N')
        {
            if(head==rail)
            {
                printf("无病人就诊\n");

            }
            else
            printf("病历号为%s的病人就诊",outque(head,rail));

        }
        else if(lin=='s'||lin=='S')
        {
            break;
        }
        else
        printf("输入命令不合法!\n");
        scanf("%c",&lin);
    }
    printf("今天不再接收病人排队,下列排队的病人依次就诊:");
    while(head!=rail)
    {
        printf("%s ",outque(head,rail));
    }
    return 0;
}
通过队来模拟病人就诊,但运行后就有死循环,我找不出为什么会这样
搜索更多相关主题的帖子: include 
2011-03-19 13:02
快速回复:通过队来模拟病人就诊,但有问题
数据加载中...
 
   



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

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