?? 通訊錄代碼.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 + -