這段代碼沒有問題
創新互聯是專業的遵化網站建設公司,遵化接單;提供成都做網站、成都網站制作、成都外貿網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行遵化網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!
你需要檢查一下鏈表的數據內容,在調用本函數前,用輸出語句先遍歷一下鏈表看一下內容吧,估計是建表有問題,或是輸入的數據存儲不正確。
#include"stdio.h"#include"string.h"#include"stdlib.h"typedefstruct{//通訊錄結點類型charnum[5];//編號charname[9];//姓名charsex[3];//性別charphone[13];//電話charaddr[31];//地址}DataType;typedefstructnode{//結點類型定義DataTypedata;//結點數據域structnode*next;//結點指針域}ListNode;typedefListNode*LinkList;LinkListhead;ListNode*p;//函數說明intmenu_select();LinkListCreateList(void);voidInsertNode(LinkListhead,ListNode*p);ListNode*ListFind(LinkListhead);voidDelNode(LinkListhead);voidprintList(LinkListhead);//主函數voidmain(){for(;;){switch(menu_select()){case1:printf("**********************************\n");printf("*通訊錄鏈表的建立*\n");printf("**********************************\n");head=CreateList();break;case2:printf("**********************************\n");printf("*通訊者信息的添加*\n");printf("**********************************\n");printf("編號(4)姓名(8)性別(3)電話(11)地址(31)\n");printf("*************************************\n");p=(ListNode*)malloc(sizeof(ListNode));//申請新結點scanf("%s%s%s%s%s",p-data.num,p-data.name,p-data.sex,p-data.phone,p-data.addr);InsertNode(head,p);break;case3:printf("***********************************\n");printf("*通訊錄信息的查詢*\n");printf("***********************************\n");p=ListFind(head);if(p!=NULL){printf("編號姓名性別聯系電話地址\n");printf("--------------------------------------------------\n");printf("%s,%s,%s,%s,%s\n",p-data.num,p-data.name,p-data.sex,p-data.phone,p-data.addr);printf("---------------------------------------------------\n");}elseprintf("沒有查到要查詢的通訊者!\n");break;case4:printf("***********************************\n");printf("*通訊錄信息的刪除*\n");printf("***********************************\n");DelNode(head);//刪除結點break;case5:printf("************************************\n");printf("*通訊錄鏈表的輸出*\n");printf("************************************\n");printList(head);break;case0:printf("\t再見!\n");return;}}}/*******************//*菜單選擇函數程序*//***************************/intmenu_select(){intsn;printf("通訊錄管理系統\n");printf("===================\n");printf("1.通訊鏈表的建立\n");printf("2.通訊者結點的插入\n");printf("3.通訊者結點的查詢\n");printf("4.通訊者結點的刪除\n");printf("5.通訊錄鏈表的輸出\n");printf("0.退出管理系統\n");printf("==========================\n");printf("請選擇0-5:");for(;;){scanf("%d",sn);if(sn5)printf("\n\t輸入錯誤,重選0-5:");elsebreak;}returnsn;}/**************************//*用尾插法建立通訊錄鏈表函數*//**************************/LinkListCreateList(void){//尾插法建立帶頭結點的通訊錄鏈表算法LinkListhead=(ListNode*)malloc(sizeof(ListNode));//申請頭結點ListNode*p,*rear;intflag=0;//結束標志置0rear=head;//尾指針初始指向頭結點while(flag==0){p=(ListNode*)malloc(sizeof(ListNode));//申新結點printf("編號(4)姓名(8)性別電話(11)地址(31)\n");printf("--------------------------------------------------------------------------------------\n");scanf("%s%s%s%s%s",p-data.num,p-data.name,p-data.sex,p-data.phone,p-data.addr);rear-next=p;//新結點連接到尾結點之后rear=p;//尾指針指向新結點printf("結束建表嗎?(1/0):");scanf("%d",flag);}rear-next=NULL;//終端結點指針置空returnhead;//返回鏈表頭指針}/******************************//*在通訊錄鏈表head中插入結點*//******************************/voidInsertNode(LinkListhead,ListNode*p){ListNode*p1,*p2;p1=head;p2=p1-next;while(p2!=NULLstrcmp(p2-data.num,p-data.num)next;//p2指向表的下一個結點}p1-next=p;//插入p所指向的結點p-next=p2;//連接表中剩余的結點}/******************************************//*有序通訊錄鏈表的查找*//******************************************/ListNode*ListFind(LinkListhead){//有序通訊錄鏈表上的查找ListNode*p;charnum[5];charname[9];intxz;printf("==================\n");printf("1.按編號查詢\n");printf("2.按姓名查詢\n");printf("==================\n");printf("請選擇:");p=head-next;//假定通訊錄表帶頭結點scanf("%d",xz);if(xz==1){printf("請輸入要查找者的編號:");scanf("%s",num);while(pstrcmp(p-data.num,num)next;if((p==NULL)||strcmp(p-data.num,num))0;p=NULL;//沒有查到要查找的通訊者}elseif(xz==2){printf("請輸入要查找者的姓名:");scanf("%s",name);while(pstrcmp(p-data.name,name)!=0)p=p-next;}returnp;}/*******************************//*通訊錄鏈表上的結點刪除*//*********************************/voidDelNode(LinkListhead){charjx;ListNode*p,*q;p=ListFind(head);//調用查找函數if(p==NULL){printf("沒有查到要刪除的通訊者!\n");return;}printf("真的要刪除該結點嗎?(y/n):");scanf("%c",jx);if(jx=='y'||jx=='Y'){q=head;while((q!=NULL)(q-next!=p))q=q-next;q-next=p-next;//刪除結點free(p);//釋放被刪結點空間printf("通訊者已被刪除!\n");}}/**********************************//*通訊錄鏈表的輸出函數*//**********************************/voidprintList(LinkListhead){ListNode*p;p=head-next;printf("編號姓名性別聯系電話地址\n");printf("--------------------------------------------------------------------------------\n");while(p!=NULL){printf("%s,%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;//后移一個結點}}
"gotoxy()","moveto()"包含在#include conio.h中了.
轉載一個程序給你:(ZT)
算法:將當前時間顯示到屏幕,當時間發生變化時,清屏,顯示新的時間(當有鍵盤操作時退出程序)。
顯示時間格式:小時:分鐘:秒
/* DEV C++ Win XP*/
#include stdio.h
#include stdlib.h
#include conio.h
#include time.h
typedef struct
{
int x;
int y;
}Point;
time_t now;
struct tm *pt,t1,t2;
int printpoint(Point p)
{
Point p1;
p1.x=p.x+2; p1.y=p.y+4;
gotoxy(p1.x,p1.y); printf("%c%c",2,2);
gotoxy(p1.x, p1.y+1); printf("%c%c",2,2);
p1.y+=4;
gotoxy(p1.x,p1.y); printf("%c%c",2,2);
gotoxy(p1.x,p1.y+1); printf("%c%c",2,2);
return 0;
}
int print0(Point p)
{
int i=0;
for(;i13;i++)
{
gotoxy(p.x+1, p.y+i);
if(i==0||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else
printf("%c%4s%c",2," ",2);
}
return 0;
}
int print1(Point p)
{
int i=0;
for(;i13;i++)
{
gotoxy(p.x+1, p.y+i);
printf("%5s%c"," ",2);
}
return 0;
}
int print2(Point p)
{
int i=0;
for(;i13;i++)
{
gotoxy(p.x+1, p.y+i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else if(i0i6)
printf("%5s%c"," ",2);
else
printf("%c",2);
}
return 0;
}
int print3(Point p)
{
int i=0;
for(;i13;i++)
{
gotoxy(p.x+1, p.y+i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else
printf("%5s%c"," ",2);
}
return 0;
}
int print4(Point p)
{
int i=0;
for(;i13;i++)
{
gotoxy(p.x+1, p.y+i);
if(i6) printf("%c%4s%c",2," ",2);
else if(i==6)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else printf("%5s%c"," ",2);
}
return 0;
}
int print5(Point p)
{
int i=0;
for(;i13;i++)
{
gotoxy(p.x+1, p.y+i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else if(i0i6)
printf("%c",2);
else
printf("%5s%c"," ",2);
}
return 0;
}
int print6(Point p)
{
int i=0;
for(;i13;i++)
{
gotoxy(p.x+1, p.y+i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else if(i0i6)
printf("%c",2);
else
printf("%c%4s%c",2," ",2);
}
return 0;
}
int print7(Point p)
{
int i=0;
for(;i13;i++)
{
gotoxy(p.x+1, p.y+i);
if(i==0) printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else printf("%5s%c"," ",2);
}
return 0;
}
int print8(Point p)
{
int i=0;
for(;i13;i++)
{
gotoxy(p.x+1, p.y+i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else printf("%c%4s%c",2," ",2);
}
return 0;
}
int print9(Point p)
{
int i=0;
for(;i13;i++)
{
gotoxy(p.x+1, p.y+i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else if(i0i6)
printf("%c%4s%c",2," ",2);
else
printf("%5s%c"," ",2);
}
return 0;
}
int clear(Point p)
{
int i=0;
for(;i13;i++)
gotoxy(p.x,p.y+i); printf("%16s"," ");
return 0;
}
int printtime(Point p, int n)
{
int a,b;
Point pp;
a=n/10, b=n%10;
pp.x=p.x+8, pp.y=p.y;
switch(a)
{
case 0: print0(p); break;
case 1: print1(p); break;
case 2: print2(p); break;
case 3: print3(p); break;
case 4: print4(p); break;
case 5: print5(p); break;
}
switch(b)
{
case 0: print0(pp); break;
case 1: print1(pp); break;
case 2: print2(pp); break;
case 3: print3(pp); break;
case 4: print4(pp); break;
case 5: print5(pp); break;
case 6: print6(pp); break;
case 7: print7(pp); break;
case 8: print8(pp); break;
case 9: print9(pp); break;
}
return 0;
}
int main()
{
Point phour, pmin, psec,point1,point2;
phour.x=9, pmin.x=32, psec.x=55;
phour.y=pmin.y=psec.y=7;
point1.x=25, point2.x=49;
point1.y=point2.y=7;
clrscr();
textbackground(BLUE);
textcolor(YELLOW);
now=time(0);
pt=localtime(now);
t1=*pt;
printtime(phour, t1.tm_hour);
printpoint(point1);
printtime(pmin, t1.tm_min);
printpoint(point2);
printtime(psec, t1.tm_sec);
while(1)
{
now=time(0);
pt=localtime(now);
t2=*pt;
if(t2.tm_sec!=t1.tm_sec)
{
t1=t2;
clrscr();
printtime(phour, t1.tm_hour);
printpoint(point1);
printtime(pmin, t1.tm_min);
printpoint(point2);
printtime(psec, t1.tm_sec);
}
if(bioskey(1)==0) continue;
else exit(0);
}
return 0;
}
分享題目:c語言通訊函數 c語言通信協議
分享網址:http://vcdvsql.cn/article40/dopioeo.html
成都網站建設公司_創新互聯,為您提供網站排名、外貿網站建設、微信公眾號、品牌網站制作、營銷型網站建設、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯