初学c语言,自己编写了下面这个简单程序,编译无错,但运行时输入“n>1个”的情况时就会报错,新接触c,查了很久怎么查也找不出问题,希望大大们能指点迷津,先谢过了!(附上运行图片)
http://www.photo-host.org/img/385981264102162921517.gif
/*编写一个含n个结点的动态单链表,并显示*/
#include<stdio.h>
#include<stdlib.h>
#define LEN sizeof(struct stu)
#define NULL 0
struct stu
{char name[10];
struct stu *next;
};
struct stu *head,*p;
void *creat()
{
int n;
int num;
printf("请输入链表的结点个数:num=");
scanf("%d",&num);
printf("这是一个含有%d个结点的链表\n",num);
printf("请输入链表结点:name=\n");
p=head=(struct stu *)malloc(LEN);
scanf("%s,",&(p->name));
for(n=0;n<num-1;n++)
{p=p->next;
p=(struct stu *)malloc(LEN);
scanf("%s,",&(p->name));}
p->next=NULL;
return 0;
}
void dis(struct stu *head)
{
struct stu *p;
printf("创建的链表如下:\n");
p=head;
if(head!=NULL)
do
{printf("%s,",p->name);
p=p->next;
}
while(p!=NULL);
}
main()
{creat();
dis(head);
return 0;
}
[此贴子已经被作者于2006-11-5 16:42:36编辑过]