简单的C语言程序问题 求帮助~~~

来源:百度知道 编辑:UC知道 时间:2024/07/04 13:04:06
要求是 输入girl的名字 和年龄 结束的时候随便输入girl的名字 然后年龄输入0, 刚才输入的girl的名字和年龄从后到前自动列出~ 例子如下~
girl->name a
girl->year 18
girl->name d
girl->year 19
girl->name f
girl->year 0

girl->name d
girl->year 19
girl->name a
girl->year 18

下面是未完成的程序,哪位朋友帮忙写完整,万分感谢~很着急 帮帮忙吧 谢谢了
#include"pseudo97.h"
typedef struct PERSON* PtrPERSON;
struct PERSON{
char name[20]; //name
long year; //age
PtrPERSON next //pointer
};
int MakeLinkedList( PtrPERSON head)
{
PtrPERSON girl;

New(girl);
InputString(girl->name);
InputInt(girl->year);

while(girl->year >0){
girl->next=head->next;
head->girl=girl;
New(girl);
InputString(girl->name);
InputInt(girl->year);
}
return 0;
}

int main(viod)
{
PtrPERSON head;
New(PtrPERSON,head)
head->next=NULL;
MakeL

程序有点垃圾。 修改如下:
#include <stdio.h>
#include <stdlib.h>

typedef struct tagPERSON //个人信息结构
{
char name[20];
long age;
}PERSON;

//template<typename DT> //如果是C++的话,这里方便许多,可以使用模板和类
typedef struct tagLNODE* pLNODE;
typedef struct tagLNODE //链表节点
{
PERSON data;
pLNODE next;
}LNODE;

int link_insert(pLNODE *head,PERSON data)//链表插入
{
pLNODE cur_tmp,lnode_tmp;

cur_tmp=*head;
lnode_tmp=(pLNODE)malloc(sizeof(LNODE));
if(lnode_tmp==NULL)return -1;
lnode_tmp->data=data;
lnode_tmp->next=NULL;

if(*head==NULL)
*head=lnode_tmp; //如果head为空,则需要对main()中的head修改,所以head的类型为指向指针的指针
else
{
while(cur_tmp->next!=NULL)
cur_tmp=cur_tmp->next;
cur_tmp->next=lnode_tmp;
}

return 0;
}

int link_display_cmd(pLNODE head) //控制台下的链表显示
{
pLNODE cur