运行出错了啊...
#include<stdio.h>#include<stdlib.h>#define LEN sizeof(struct Student)struct Student{ long num; float score; struct Student *next;};int n;struct Student *creat(){ 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 Studen *)malloc(LEN); scanf("%ld,%f",&p1->num,&p1->score); } p2->next=NULL;}void print(struct Studen *head){ struct Student *p; printf("\nNow, These %d records are:\n",n); p=head; if(head!=NULL) do {printf("%ld %5.1f\n",p->num,p->score); p=p->next; }while(p!=NULL);}int main(){struct Student *head; head=creat(); print(head);} 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); }
[解决办法]
void print(struct Studen *head)//这儿错了
[解决办法]
p2->next=NULL; return head;//struct Student *creat()函数最后要有个返回值
[解决办法]
再好好核对一下,代码是不是抄全了
大概看了下,creat函数的实现有问题,没有return语句,运行肯定会出错的
函数结尾加一句"return head;"试试
现在看看曾经领自己入门c语言的谭浩强的示例代码,一堆的陷阱
建议楼主如果以后还用c开发的话,看一些国外的经典c教材,比如c专家编程等