编写了一个创建链表输出链表的程序,却不能看到结果, 但是把其中 float score改成int型就可以了啊?不知道为什么会这样啊? #include "stdio.h" #include "conio.h" #include "malloc.h"
#define NULL 0 #define LEN sizeof(struct student)
struct student {long num; float score; struct student*next; }; int n;
struct student *creat(void) { struct student*head; struct student*p1,*p2; n=0; p1=p2=(struct student*)malloc(LEN); scanf("%ld,%f",&p1->num,&p1->score); head=NULL;
while(p1->num!=0) { n=n+1; if(n==1)head=p1; else p2->next=p1; p2=p1; p1=(struct student*)malloc(LEN); scanf("%ld,%f",&p1->num,&p1->score);
} p2->next=NULL; return(head); }
void print(struct student*head) { struct student*p; printf("\nNow,These %d records are:\n",n); p=head; if(head!=NULL) do {printf("%ld,%f\n",p->num,p->score); p=p->next; }while(p!=NULL);
}
void main() { struct student*head;
printf("please input records:\n"); head=creat(); print(head); getch();}