c语言问题,见补充代码,创建和打印单链表,请帮我找找错误
#include<stdio.h>#include<stdlib.h>#defineok1#defineno0typedefintstatus;typedefintele...
#include <stdio.h>
#include <stdlib.h>
#define ok 1
#define no 0
typedef int status;
typedef int elemtype;
typedef struct lnode
{
elemtype data;
struct lnode *next;
}lnode,*linklist;
void creat(linklist l,int n)
{
int i;
linklist p;
l=(linklist)malloc(sizeof(lnode));
l->next=NULL;
for(i=n;i>0;i--)
{
p=(linklist)malloc(sizeof(lnode));
scanf("%d",p->data);
p->next=l->next;
l->next=p;
}
}
void print(linklist l)
{
linklist p=l;
p=p->next;
while(p){printf("%d",p->data);p=p->next;}
}
int main()
{
linklist l;
creat(l,3);
print(l);
return 0;
} 展开
#include <stdlib.h>
#define ok 1
#define no 0
typedef int status;
typedef int elemtype;
typedef struct lnode
{
elemtype data;
struct lnode *next;
}lnode,*linklist;
void creat(linklist l,int n)
{
int i;
linklist p;
l=(linklist)malloc(sizeof(lnode));
l->next=NULL;
for(i=n;i>0;i--)
{
p=(linklist)malloc(sizeof(lnode));
scanf("%d",p->data);
p->next=l->next;
l->next=p;
}
}
void print(linklist l)
{
linklist p=l;
p=p->next;
while(p){printf("%d",p->data);p=p->next;}
}
int main()
{
linklist l;
creat(l,3);
print(l);
return 0;
} 展开
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#define ok 1
#define no 0
typedef int status;
typedef int elemtype;
typedef struct lnode
{
elemtype data;
struct lnode *next;
}lnode, *linklist;
void creat(linklist l, int n)
{
int i;
linklist p;
for (i = n; i>0; i--)
{
p = (linklist)malloc(sizeof(lnode));
scanf("%d", &p->data);//取址
l->next = p;//链接到列表的后面
l = p;
}
l->next = NULL;
}
void print(linklist l)
{
linklist p = l;
p = p->next;
while (p) { printf("%d ", p->data); p = p->next; }
}
int main()
{
linklist l = (linklist)malloc(sizeof(lnode));//先赋值
creat(l, 3);
print(l);
int c;
scanf("%d", &c);
return 0;
}
更多追问追答
追问
抱歉,还是报错
追答
我测试过的,你是不是输入了非整数内容了?你把我的复制进去试试
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询