|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
可以正常运行,但是没有输出链表,求指错,蟹蟹
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define LEN sizeof(struct list)
struct list //定义链表
{
char *name;
long int num;
struct list *next;
};
int main(void)
{
struct list *p1,*p2,*head,*p;
p1=p2=(struct list *)malloc(LEN); //申请第一个节点
printf("请输入姓名:");
scanf("%s",&p1->name);
printf("请输入学号:");
scanf("%d",&p1->num);
head = NULL;
int n=0;
while(p1->num) //动态申请节点并输入
{
n++;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(struct list *)malloc(LEN);
printf("请输入姓名:");
scanf("%s",&p1->name);
printf("请输入学号:");
scanf("%d",&p1->num);
}
p2->next=NULL;
p=head; //打印链表
while(head)
{
do
{
printf("%d: 姓名:%s 学号:%d\n",n+1,p->name,p->num);
p=p->next;
}while(p);
}
return 0;
}
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define LEN sizeof(struct list)
struct list //定义链表
{
char *name;
long int num;
struct list *next;
};
int main(void)
{
int n=0;
struct list *p1,*p2,*head;
printf("LEN = %d\n",LEN);
p1=p2=(struct list *)malloc(LEN); //申请第一个节点
if(p1==NULL)
{
printf("分配内存失败\n");
}
printf("请输入姓名:");
scanf("%s",&p1->name);
printf("请输入学号:");
scanf("%d",&p1->num);
head = NULL;
while(p1->num != 0) //动态申请节点并输入
{
n++;
if(n==1)
{
head=p1;
}
else
{
p2->next=p1;
p2=p1;
}
p1=(struct list *)malloc(LEN);
printf("请输入姓名:");
scanf("%s",&p1->name);
printf("请输入学号:");
scanf("%d",&p1->num);
}
p2->next=NULL;
p2=head; //打印链表
while( p2!=NULL )
{
printf("%d:姓名:%s 学号:%d\n",n+1,&p2->name,p2->num);
p2=p2->next;
}
return 0;
}
|
|