#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<conio.h>
#define ERROR 1
typedef struct linknode /*结点类型*/
{
double data;
struct linknode *next;
}lnode;
typedef struct /*链表类型*/
{
lnode *head,*tail; /*头尾指针*/
int len;
}linklist;
int creat(linklist *l) /*创建一个长度为n(不计头结点)带头结点的链表*/
{ /*n==0,链表为空*/
lnode *p,*q;int i,n;
printf("input the length of linklist when length is 0 the linklist is empty: ");
scanf("%d",&n);
p=(lnode *)malloc(sizeof(lnode));
if(p==NULL)
return ERROR;
else
{
l->head=p;q=p;
for(i=0;i<n;i++)
{
p=(lnode *)malloc(sizeof(lnode));
if(p==NULL)
return ERROR;
else
{
printf("please input the %dth data:",i);
scanf("%f",&(p->data));
printf("%f",p->data);
q->next=p;q=p;
}
}
p->next=NULL;l->len=n;l->tail=p;
}
}
void printlinklist(linklist *l) /*打印链表元素*/
{
int i;
lnode *p;
p=(l->head)->next;
for(i=0;i<l->len;i++,p=p->next)
printf("%f\n",p->data);
}
main()
{
linklist *l;
l=(linklist *)malloc(sizeof(linklist));
creat(l);
printlinklist(l);
getch();
}
输入的数与输出的数不一样