回 帖 发 新 帖 刷新版面

主题:[新人求助]想问一下,我的线性表为什么不能显示,谢谢大家~~~急

建立完表之后,选2,SHOWLIST,但是显示不出,大家能帮帮我吗?
程序如下

#include <stdio.h>

typedef struct linknode
{
    char data;
    struct linknode *next;
}node;
node *head;

int n=0; // 线性表长度

void CreateList() // 建立线性表
{
    node *p,*s;
    char x;
    int z=1;
    head=new node;
    p=head;
    printf("\n线性表建立中……");
    printf("\n说明:请逐个输入字符,结束标记为'x'!\n");
    while(z)
    {
        printf("\t请输入:");
        scanf("%c",&x);
        getchar();
        if(x!='x')
        {
            s=new node;
            n++;
            s->data=x;
            p->next=s;
            s->next=NULL;
            p=s;
        }
        else z=0;
    }
}

void ShowList() // 显示线性表

    node *p=head;
    printf("\n\t\t显示线性表的所有元素:");
    printf("\n\t\t");
    while(p->next!=NULL)
    { 
        printf("\t\t%c",p->next->data);
        p=p->next;
    }
}

int main()
{
    int choice;
    int i=0;
    head=NULL;
    while(i==0)
    {
        printf("1:creat\n2:del\ninput your choice:\t");
        scanf("%d",&choice);
        if(choice==1)
        CreateList();
        if(choice==2)
        ShowList();    
    }
}

回复列表 (共3个回复)

沙发

因为你在scanf("%d",&choice);输入的回车符,被x接收了,
而你输入的字符,被getchar()接收了,所以改为
getchar();
scanf("%c",&x);

板凳

还是不对啊.......

3 楼

我在DEV-C++中改了后测试正确啊!

我来回复

您尚未登录,请登录后再回复。点此登录或注册