#include<stdio.h>
#include<stdlib.h>
typedef struct lnode{
int data;
struct lnode *next;
}lnode,*linklist;
linklist creatlist(linklist &l){
lnode *s;int x;
l=(linklist)malloc(sizeof(lnode));
l->next =NULL;
scanf("%d",&x);
while(x!=9999){
s=(linklist)malloc(sizeof(lnode));
s->data =x;
s->next =l->next ;
l->next =s;
scanf("%d",&x);
}
return l;
}
void printflist(linklist &l){
int i=1;
lnode *t;
t =l->next ;
while(l->next !=NULL){
printf("%d",&t->data );
t->next =t->next ;
}
}
int main(){
lnode *l;
creatlist(l);
printflist(l);
return 0;
}
这问题出在哪儿呀,我记得我之前大一的时候一样的代码可以运行呀
死循环了吧
void printflist(linklist &l){
int i=1;
lnode *t = l->next;
while(t !=NULL){
printf("%d",t->data ); //多了个&
t=t->next ; //你写成t->next = t->next啦
}
}
打印函数修改如下,供参考:
void printflist(linklist &l){
int i=1;
lnode *t;
t =l->next ;
while(t!=NULL){ //(l->next !=NULL)
printf("%d",t->data ); // printf("%d",&t->data );
t =t->next ; //t->next =t->next ;
}
}