tyl555 发表于 2022-6-20 21:13:48

链表无法输出

无法输出(如果有写得不好的地方还请指出,谢谢大佬了)
#include <stdio.h>
typedef struct abc {
        int date;
        struct abc *next;
       
}name;
//创造头接点
name* creathead()
{
    name* head=(name*)malloc(sizeof(name));
        head->next=NULL;
        return head;
       
}//头插法
void input(name* head ,int n)
{
        int i;
           name* node=creathead();
    for(i=1;i<=n;i++){
        name* p=(name*)malloc(sizeof(name));
        scanf("%d",&p->date);
        p->next=node->next;
        node->next=p;       
        }
}//打印
void prin(name* head)
{
        name* val=head->next;
    while(val)
            {
           
        printf("%d",val->date);
        val=val->next;
                 
      }       
       
}//显示
int show()
{
        int n;
        printf("输入几个数N:");
        scanf("%d",&n);
        return n;
}
int main(int argc, char *argv[])
{
        name* head=creathead();
        int n=show();
        input(head,n);
        prin(head);
        return 0;
}

风车呼呼呼 发表于 2022-6-20 21:38:58

void input(name* head ,int n)
{
      int i;
         name* node=creathead();
    for(i=1;i<=n;i++){
      name* p=(name*)malloc(sizeof(name));
      scanf("%d",&p->date);
      p->next=node->next;
      node->next=p;      
      }
}//打印
插入函数里自己创建一个所谓头结点node,将新结点p接在node后面。但是这些操作对于主函数定义的真正头结点head,也是传入input()的参数,有什么改变呢

tyl555 发表于 2022-6-20 21:49:59

风车呼呼呼 发表于 2022-6-20 21:38
插入函数里自己创建一个所谓头结点node,将新结点p接在node后面。但是这些操作对于主函数定义的真正头结 ...

大佬可以改一下代码吗,有点理解不了

傻眼貓咪 发表于 2022-6-20 22:29:43

tyl555 发表于 2022-6-20 21:49
大佬可以改一下代码吗,有点理解不了

// 定义函数时
void input(name** head, xxxx)
{
    // --- 你的代码 ---
}

// 调用函数时
input(&head, xxxx);

tyl555 发表于 2022-6-20 23:15:55

tyl555 发表于 2022-6-20 21:49
大佬可以改一下代码吗,有点理解不了

明白了,谢谢大佬
页: [1]
查看完整版本: 链表无法输出