基础不扎实,写一晚上才勉强写完了自己的链表创建,必须一点一点写代码才能找到自己的问题,再一点一点修正。问题再多也要一点一点面对。
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
typedef struct student{
int num;
char name[20];
struct student * next;
}listStu;
listStu* Create();
listStu* Create(){
int len=0;
int size=sizeof(listStu);
listStu *head,*p1,*p2;
printf("请输入要创建list的节点个数:");
scanf("%d",&len);
p2=head=(listStu*)malloc(size);
while(len-->0){
p1=(listStu*)malloc(size);
printf("输入学号和姓名:");
scanf("%d %s",&p1->num,p1->name);
p2->next=p1;
p2=p1;
}
p2->next=NULL;
return head;
}
struct student *Create1()
{
struct student *head,*p1,*p2;
int len=0;
int n=0;
printf("请输入要创建list的节点个数:");
scanf("%d",&len);
p2=p1=(listStu*)malloc(sizeof(listStu));
head=NULL;
printf("请输入学生的学号和姓名:");
scanf("%ld %s",&p1->num,p1->name);
head=p1;
len--;
while(p1->num!=0&&len--)
{
p1=(struct student *)malloc(sizeof(listStu));
printf("请输入学生的学号和姓名:");
scanf("%ld %s",&p1->num,p1->name);
p2->next=p1;
p2=p1;
}
p2->next=NULL;
return head;
}
int main(){
Create1();
}