代码如下,运行结果在最后。输入姓名和年龄的时候是没问题的,可是到输入生日的时候却总是出错,不知道怎么改,还望有好人能指点一下
#include<stdio.h>
#define stu_num 2
typedef struct {
int year;
int month;
int day;
}BIR;
typedef struct information{
char name[20];
int age;
BIR birthday;
/**********************/
struct information*next;
}INF;
void Into_List(INF**h,INF*i);//链表的创建
void Put_List(INF*h);//链表的遍历
int main()
{
INF *head=NULL,*infm=NULL;
BIR *birthday=NULL;
int i;
for(i=0;i<stu_num;i++)
{
infm=(INF*)malloc(sizeof(INF));
birthday=(BIR*)malloc(sizeof(BIR));
printf("姓名:\n");
scanf("%s",&infm->name);
printf("年龄:\n");
scanf("%d",&infm->age);
printf("出生日期:\n");
scanf("%d,%d,%d",&infm->birthday);
Into_List(&head,infm);
}
Put_List(head);
return 0;
}
void Into_List(INF**h,INF*i)//创建链表
{
INF*mid;
mid=*h;
if(*h==NULL)
{
*h=i;
i->next=NULL;
}
else
{
while(mid!=NULL)
{
mid=mid->next;
}
mid->next=i;
i->next=NULL;
}
}
void Put_List(INF*h)//遍历链表
{ INF*mid;
mid=h;
while(h!=NULL)
{
printf("姓名:%s 年龄:%d 出生日期:%d,%d,%d",mid->name,mid->age,
mid->birthday);
}
}
运行结果