C语言 链表 输入第一个节点后就报错终止运行,代码内容,求大神~~~~~~// 结构:建立10个节点的链表.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
#include
#de
C语言 链表 输入第一个节点后就报错终止运行,代码内容,求大神~~~~~~// 结构:建立10个节点的链表.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
#include
#define N 10
struct Cstudent
{
char num[15];//学号
char name[20];//姓名
char sex[6];//性别
int age;//年龄
struct Cstudent *next;
};
struct Cstudent *creat()
{
struct Cstudent *p,*q,*head;
char sname[20];
head=q=NULL;
while(1)
{
printf("请输入学生姓名:");
scanf("%s",sname);
if(strcmp(sname,"#")==0)
break;
p=(struct Cstudent *)malloc(sizeof(struct Cstudent));
strcpy(p->name,sname);
printf("请输入学号:");
scanf("%s",p->num);
printf("请输入性别:");
scanf("%s",p->sex);
printf("请输入年龄:");
scanf("%d",p->age);
if(q==NULL)
head=q=p;
else
{
q->next=p;
q=p;
}
}
free(p);
q->next=NULL;
return head;
}
void printflist(struct Cstudent *head)
{
struct Cstudent *p;
for(p=head;p!=NULL;p=p->next)
printf("%s %d %s %s
",p->name,p->age,p->sex,p->num);
}
int _tmain(int argc, _TCHAR* argv[])
{
struct Cstudent st;
int i;
printf("请输入学生信息(输入“#”结束)
");
st=*creat();
printf("----------------------------------------------------
");
printf("--学生姓名-------年龄-------性别-------学号---------
");
printflist(&st);
printf("----------------------------------------------------
");
return 0;
}
展开
全部