跪求高手帮忙调试程序

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 20

typedef struct {
char name[13];//姓名
char phone[13];//电话
}Datatype;

typedef struct node{//结点的类型定义
Datatype data;//结点的数据域指针
struct node *next;//节点指针域
}ListNode,*LinkList;

LinkList head;

//函数说明

LinkList CreateList(void);
void PrintList(LinkList head);

/////主函数/////////////////////
void main()
{
char temp[13];
int i,j,flag=0;//结束标志为1;
Datatype a[N];
printf("***********************************\n");
printf("* 通讯录链表的建立 *\n");
while(flag==0){
for(i=0;i<N;i++)
{
for(j=0;j<13;j++)
scanf("%s %s",&a[i].name,&a[i].phone);
printf("结束建表吗?(1/0):");
scanf("%d",&flag);//输入标志数据
}
for(i=0;i<N;i++)//将姓名排序;
{
if( strcmp(a[i].name,a[i+1].name)>0)
{
temp=a[i+1].name;
a[i+1].name=a[i].name;
a[i].name=temp;
}
}
}

printf("***********************************\n");
head=CreateList();
printf("***********************************\n");
printf("* 通讯录链表的输出 *\n");
printf("***********************************\n");
PrintList(head);

return;

}

//尾插法建立链表
LinkList CreateList(void){
LinkList head=(ListNode *)malloc(sizeof(ListNode));
ListNode *p,*rear;
rear=head;//为指针初始指向头结点
p=(ListNode *)malloc(sizeof(ListNode));
strcpy(p->data.name,a[N].name);
strcpy(p->data.phone,a[N].phone);
rear->next=p;//将新建的结点链接到尾结点之后
rear=p;//尾指针指向新的结点

rear->next=NULL;//终端结点指针域置空
return head;//返回链表的头指针
}

//通讯录结点的输出
void PrintList(LinkList head)
{
ListNode *p;
p=head;p=p->next;
printf("姓名 电话\n");
printf("--------------------------\n");
while(p!=NULL){
printf("%s %s\n",p->data.name,p->data.phone);
printf("--------------------------\n");
p=p->next;
}
}

才疏学浅,错误怎么改都一直有,求指导

帮你纠错还是帮你重写啊?追问

纠错就好,谢谢···

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜