📄 通讯录代码.txt
字号:
typedef struct{
int num;
char name[9];
char sex[3];
char phone[13];
char addr[31];
}elemtype;
typedef struct lnode{
elemtype data;
lnode *next;
}lnode,*listnode;
#include<stdio.h>
#include<malloc.h>
void createlist(listnode &l,int &n){
char flag='y';
lnode *p;
lnode *s;
l=(lnode *)malloc(sizeof(lnode));
l->next=NULL;
while(flag=='y'||flag=='Y')
{
n++;
s=(lnode *)malloc(sizeof(lnode));
printf("请输入带插入的人员信息:\n");
printf("请输入该人的编号:");
scanf("%d",&s->data.num);
printf("\n");
printf("请输入该人的姓名:");
scanf("%s",s->data.name);
printf("\n");
printf("请输入该人的性别:");
scanf("%s",s->data.sex);
printf("\n");
printf("请输入该人的电话:");
scanf("%s",s->data.phone);
printf("\n");
printf("请输入该人的地址:");
scanf("%s",s->data.addr);
printf("\n");
p=l;
while(p->next!=NULL){
if(p->next->data.num<s->data.num)
p=p->next;
else break;
}
if(p->next==NULL){
p->next=s;
s->next=NULL;
}
else{
s->next=p->next;
p->next=s;
}
getchar();
printf("是否继续?\n");
scanf("%c",&flag);
}
}
void printflist(lnode *l){
lnode *p;
p=l->next;
printf("编号 姓名 性别 电话 地址\n");
while(p!=NULL){
printf("%d %s %s %s %s\n",p->data.num,p->data.name,
p->data.sex,p->data.phone,p->data.addr);
printf("\n");
p=p->next;
}
}
void chazhao(lnode *p[],int n,int t){
int left=0;
int flag=0;
int right=n-1;
int middle;
while(left<=right){
middle=(left+right)/2;
if(t==p[middle]->data.num)
{
flag=1;
printf("找到编号为%d的人\n",t);
printf("该人的姓名是:%s\n",p[middle]->data.name);
printf("该人的电话号码是:%s\n",p[middle]->data.phone);
printf("该人的地址是:%s\n",p[middle]->data.addr);
}
if(t>p[middle]->data.num) left=middle+1;
else right=middle-1;
}
if(flag==0) printf("没找到与您输入的编码相同的人。\n");
}
void main()
{
int n=0;
int t;
int i;
lnode *q;
lnode *p[1000];
lnode *l;
createlist(l,n);
printflist(l);
q=l;
for(i=0;i<n;i++)
{
p[i]=q;
q=q->next;
}
printf("请输入您要查找的人的编号:\n");
scanf("%d",&t);
printf("\n");
chazhao(p,n,t);
printf("程序结束。\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -