创建一个汉字链表输出有问题?

作者站长头像
站长
· 阅读数 7
#include<stdio.h>
#define  MAX_RESULT_LENGTH 2
typedef struct LNode {
    char hanzi[MAX_RESULT_LENGTH];       // 存储汉字
    struct LNode* next;        // 下一个节点的指针
} PinyinEntryNode,*PinyinList;
void Initlist(PinyinList &L)
{
    L=new LNode;
    L->next=NULL;
}
void Creatlist_H(PinyinList &L,int n)
{
    PinyinList p;
    L=new LNode;
    L->next=NULL;
    for(int i=0;i<n;++i)
    {
        p=new LNode;
        printf("输入第%d个:\n",i+1); 
        scanf("%s",&p->hanzi);
        p->next=L->next;
        L->next=p;        
    } 
    printf("输入成功\n");
}
void Print(PinyinList &L)
 {
    while (L ->next!= NULL) 
    {
        printf("%s ", L->hanzi);
        L= L->next;
    }
}
main()
{
    PinyinList L,p;
    int n;
    Initlist(L);
    printf("请输入个数:"); 
    scanf("%d",&n);
    printf("输入汉字\n") ;    
    Creatlist_H(L,n);
    Print(L);
}
回复
1个回答
avatar
test
2024-07-04
#include<stdio.h>
#define  MAX_RESULT_LENGTH 4
typedef struct LNode {
    char hanzi[MAX_RESULT_LENGTH];       // 存储汉字
    struct LNode* next;        // 下一个节点的指针
} PinyinEntryNode,*PinyinList;
void Initlist(PinyinList &L)
{
    L=new LNode;
    L->next=NULL;
}
void Creatlist_H(PinyinList &L,int n)
{
    PinyinList p;
    L=new LNode;
    L->next=NULL;
    for(int i=0;i<n;++i)
    {
        p=new LNode;
        printf("输入第%d个:\n",i+1); 
        scanf("%s",&p->hanzi);
        p->next=L->next;
        L->next=p;        
    } 
    printf("输入成功\n");
}
void Print(PinyinList L)
 {
    L = L->next; // Skip the head node
    while (L != NULL) 
    {
        printf("%s ", L->hanzi);
        L= L->next;
    }
}
int main()
{
    PinyinList L;
    int n;
    Initlist(L);
    printf("请输入个数:"); 
    scanf("%d",&n);
    printf("输入汉字\n") ;    
    Creatlist_H(L,n);
    Print(L);
    return 0;
}
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容