当前位置: 首页 > 知识库问答 >
问题:

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

葛桐
2023-06-06
#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个答案

翟冷勋
2023-06-06
#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;
}
 类似资料:
  • 问题内容: 我有一个包含以下各列的表 它具有诸如 是否可以在postgres中执行sql select语句,该语句将返回每一行以及具有下一个最高order_id的ID?所以我想要类似… 谢谢 问题答案:

  • 通过前面的学习我们知道, C++ 程序中一般用 ostream 类的 cout 输出流对象和 << 输出运算符实现输出,并且 cout 输出流在内存中有相应的缓冲区。但有时用户还有特殊的输出需求,例如只输出一个字符,这种情况下可以借助该类提供的 put() 成员方法实现。 put() 方法专用于向输出流缓冲区中添加单个字符,其语法格式如下: ostream&put(char c); 其中,参数 c

  • 我只想创建双链接列表并检查它是否为空。请说出错误。显示的错误是:在函数empty()中,head和tail超出范围。在类Dict中定义为struct时不起作用。

  • 问题内容: 我有一些基于NDK的C 代码,需要构建一个android位图对象。我敢肯定有一种方法可以直接从C 代码执行此操作,但这并不是最简单的事情;) 所以我想调用的方法是 因此,要从本机代码执行此操作,我需要执行以下步骤。 找到类(android.graphics.Bitmap)。 获取“ createBitmap”的静态方法ID。 创建枚举。 调用静态方法。 (最终,我将需要创建一个jint

  • 问题内容: 我需要加入 所有 PostgreSQL表并将它们转换成Python字典。数据库中有72个表。总列数大于 1600 。 我编写了一个简单的Python脚本,该脚本可以联接多个表,但是由于内存错误而无法联接所有表。在脚本执行期间,所有内存均被占用。然后,我在具有 128GB RAM和8个CPU 的新虚拟服务器上运行脚本。在lambda函数执行期间失败。 如何改进以下代码以执行 所有 表联接