哪位能帮我看下是什么问题?能得出结果,但是运行出错。
#include<stdio.h>#include<stdlib.h>
typedef struct node{
int data;
struct node *next;
}JD;
/***************************************/
JD *lzjz(JD *top,int x)
{
JD *p;
while(x!=0)
{
int data;
data=x%2;
x=(x-data)/2;
p=(JD*)malloc(sizeof(JD));
p->data=data;
p->next=top;
top=p;
}
return p;
}
/*****************************************/
void lztz(JD *top)
{
int data;
JD *q;
printf("转换为二进制数为:");
while(top!=NULL)
{
q=top;
printf("%d",top->data);
top=top->next;
free(q);
}
printf("\n");
}
/********************************************/
void main()
{
int x;
JD *top,*p;
printf("请输入一个十进制数:");
scanf("%d",&x);
p=lzjz(top,x);
lztz(p);
}