主题:C语言的变成问题 和链表有关哈
请问这个程序要怎么改才比较好用额...
一个问题是输入函数 我最后打"0"了 但是 它也不结束
还有一个就是 说主函数里面 我调用的时候有问题 不会改了
实现的情况就是 输入姓名 电话号码还有地址 然后 最后会出现和通讯录的列表 就是这样
#include<stdio.h>
#include<malloc.h>
#define NULL 0
#define LEN sizeof(struct linkman)
struct linkman //联系人结构体
{
char name[20]; //姓名
long num; //电话号码
char add[100];//地址
struct linkman * next;
};
int n;
struct linkman * creat(void) //创建空间(联系人)的函数
{
struct linkman * head;
struct linkman * p1,* p2;
n=0;
p1=p2=(struct linkman *)malloc(LEN);
printf("Add linkman's name telephone number and address please!\n");
scanf("%s,%ld,%s",p1->name,&p1->num,p1->add);
head=NULL;
while(p1->name!=0)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct linkman *)malloc(LEN);
scanf("%s,%ld,%s",p1->name,&p1->num,p1->add);
}
p2->next=NULL;
return(head);
}
void print(struct linkman * head) //输出结果的函数
{
struct linkman * p;
printf("**->address book<-**\n");
p=head;
if(head!=NULL)
do{
printf("%s,%ld,%s\n",p->name,p->num,p->add);
p=p->next;
}while(p!=NULL);
}
void main()
{
creat();
print();
}
一个问题是输入函数 我最后打"0"了 但是 它也不结束
还有一个就是 说主函数里面 我调用的时候有问题 不会改了
实现的情况就是 输入姓名 电话号码还有地址 然后 最后会出现和通讯录的列表 就是这样
#include<stdio.h>
#include<malloc.h>
#define NULL 0
#define LEN sizeof(struct linkman)
struct linkman //联系人结构体
{
char name[20]; //姓名
long num; //电话号码
char add[100];//地址
struct linkman * next;
};
int n;
struct linkman * creat(void) //创建空间(联系人)的函数
{
struct linkman * head;
struct linkman * p1,* p2;
n=0;
p1=p2=(struct linkman *)malloc(LEN);
printf("Add linkman's name telephone number and address please!\n");
scanf("%s,%ld,%s",p1->name,&p1->num,p1->add);
head=NULL;
while(p1->name!=0)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct linkman *)malloc(LEN);
scanf("%s,%ld,%s",p1->name,&p1->num,p1->add);
}
p2->next=NULL;
return(head);
}
void print(struct linkman * head) //输出结果的函数
{
struct linkman * p;
printf("**->address book<-**\n");
p=head;
if(head!=NULL)
do{
printf("%s,%ld,%s\n",p->name,p->num,p->add);
p=p->next;
}while(p!=NULL);
}
void main()
{
creat();
print();
}