小飞侠阿伟 2021-01-10 14:45 采纳率: 0%
浏览 22

为什么Node *create()函数被跳过执行?

#include<stdio.h>
#include<stdlib.h>
typedef struct node{
    int value;
    struct node *next;
}Node;
Node *head=NULL;
Node *create();
int main(){
    Node *create();
    while(head){
        printf("%d\n",head->value);
        head=head->next;
    }
    return 0;
}
Node *create(){
    int number;
    do{
        scanf("%d",&number);
        if(number!=-1){
            Node *p=(Node*)malloc(sizeof(Node));
            p->value=number;
            p->next=NULL;
            Node *last=head;
            if(last){
                while(last->next){
                    last=last->next;
                }
                last->next=p;
            }
            else{
                head=p;
            }
        }
    }while(number!=-1);
    return head;
}

  • 写回答

3条回答 默认 最新

  • 断点2019 2021-01-10 17:36
    关注

    node* create是定义名为create的指针变量,不是调用你的create函数,猜你想用head = create();

    评论

报告相同问题?

悬赏问题

  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 机器学习简单问题解决
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写