版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
注:下列程序本人确保一定对的,有一部分是我在网上找到的,并不全是本人实的好孩纸,绝对不骗人财富值,相信我吧,这些程序你值得拥有。typedefstructfloatcoef;intexpn;//指数值structnode*next;voidstart()//{printf("两个一元多项式的相加,相减,相乘:\n");printf("请选择操作printf("0.退出printf("3.两个一元多项式相减}voidinsert(PLOY*head,PLOY*inpt)//{PLOY*pre,*now;intsignal=0;pre=head;//pre定义为现在的前一种链节if(pre->next==NULL){pre->next=inpt;}{{if(inpt->expn<now->expn)//{if(now-{}{}}if(inpt-{}{free(inpt);{}}}}}PLOY*creat(charch)//{PLOY*head,*inpt;floatx;inthead=(PLOY*)malloc(sizeof(PLOY));printf("请输入一元多项式%c:(00~)\n",ch);scanf("%f%d",&x,&y);{inpt=(PLOY*)malloc(sizeof(PLOY));insert(head,inpt);//否则就查找位置并且插入新链节printf("请输入一元多项式%c的下一项:(以00~)\n",ch);scanf("%f%d",&x,&y);}return}PLOY*minuscreat(charch)//{PLOY*head,*inpt;floatx;inthead=(PLOY*)malloc(sizeof(PLOY));printf("请输入一元多项式%c:(00~)\n",ch);scanf("%f%d",&x,&y);{inpt=(PLOY*)malloc(sizeof(PLOY));insert(head,inpt);//否则就查找位置并且插入新链节printf("请输入一元多项式%c的下一项:(以00~)\n",ch);scanf("%f%d",&x,&y);}return}PLOY*addPLOY(PLOY*head,PLOY*pre)//PLOY*inpt;intflag=0;{if(pre-flag=1;{pre=pre-inpt=(PLOY*)malloc(sizeof(PLOY));}//否则把目前"g(x)"的链节插入到"F=(x)"}return}PLOY*byPLOY(PLOY*head1,PLOY*head2)//PLOY*inpt,*res,*pre;intres=(PLOY*)malloc(sizeof(PLOY));head1=head1-{if(pre-{pre=head2;}{flag=1;}pre=pre-inpt=(PLOY*)malloc(sizeof(PLOY));insert(res,inpt);//把目前"g(x)"的链节插入到"F=(x)"}return}voidprint(PLOY*fun)//{PLOY*printing;intflag=0;printing=fun->next;//正在被打印的链节if(fun->next==NULL)//如果函数为空打印{}{printf("+");//为正数时打印"+"号if(printing->coef==1);"1"就不用打印系数了elseif(printing->coef==-1)printf("1"就打印"-"号就行了printf("%f",printing->coef);if(printing->expn!=0)printf("x^%d",printing->expn);//如果指数为"0"elseif((printing->coef==1)||(printing->coef==-1))if(printing-flag=1;printing=printing-}}voidminusprint(PLOY*fun)//{PLOY*printing;intflag=0;printing=fun->next;//正在被打印的链节if(fun->next==NULL)//如果函数为空打印{}{printf("-");//为正数时打印"-"号if(printing->coef==-1);1"就不用打印系数了elseif(printing->coef==1)printf(""1"就打印"-"号就行了printf("+%f",-printing->coef);if(printing->expn!=0)>expn);//如果指数为"0"elseif((printing->coef==1)||(printing->coef==-1))if(printing-flag=1;printing=printing-}}void{PLOYintsign=-1;{{case0:break;case1:{f=creat('f');//输入多项式f(x)g=creat('g');g(x)f=addPLOY(f,g);sign=-1;//复位标志start();}case{f=creat('f');//输入多项式f(x)g=creat('g');g(x)f=byPLOY(f,g);sign=-1;//复位标志start();}case{f=creat('f');//输入多项式f(x)g=minuscreat('g');g(x)f=addPLOY(f,g);sign=-1;//复位标志start();}{}}}}迷宫求解(建.cpp以一种m*n的长方形矩阵表达迷宫,0和1有#include<stdio.h>#include<stdlib.h>#defineM15#defineN15structmarkintx;intstructElement{intx,y;//x行,yintd;//dtypedefstructLStack{ElementstructLStackintInitStack(PLStack&S)//构造空栈return}intStackEmpty(PLStackS)//return1;return0;intPush(PLStack&S,Elemente)//PLStackp;p-return}intPop(PLStack&S,Element&e)PLStackp;{return1;}return0;}/***************求迷宫途径函数voidMazePath(structmarkstart,structmarkend,intmaze[M][N],int{inti,j,d;inta,b;Elementelem,e;PLStackS1,S2;maze[start.x][start.y]=2;elem.d=-1;1while(!StackEmpty(S1)){d=elem.d+1;//下一种方向while(d<4){if(a==end.x&&b==end.y&&maze[a][b]==0){elem.d=886;//方向输出为-1printf("\n0=1=2=3=886为则走出迷宫\n\n通路while(S1)}printf("--}return;break,但发现出错,exit又会}if(maze[a][b]==0){maze[a][b]=2;Push(S1,elem);i=a;//下一点转化为目前点d=-}}printf("没有找到能够走出此迷宫的途径\n");voidinitmaze(intmaze[M][N]){intintm,n;printf("m=");printf("n=");printf("\n请输入迷宫的各行各列:\n用空格隔开,0代表路,1for(i=0;i<=m+1;i++){}{}for(i=0;i<=m+1;i++){printf("%d",maze[i][j]);}}void{intstructmarkstart,end;//start,end入口和出口的坐标intadd[4][2]={{0,1},{1,0},{0,-1},{-initmaze(sto);//MazePath(start,end,sto,add);//findpath求迷宫途径//从程序里调用“pause”命令,在命令行上输出一行类似于“Pressanykeytoexit”的字,等待顾客按一种键,然后返回}3)#defineINFINITY10000/*无穷大*/#defineMAX_VERTEX_NUM40#defineMAX40typedefstructArCell{intadj;typedefstructcharname[30];intcharintroduction[100];//typedefstruct{infotypevexs[MAX_VERTEX_NUM];AdjMatrixarcs;intMGraphb;voidcmd();MGraphInitGraph();voidMenu();voidBrowser(MGraphvoidShortestPath_DIJ(MGraph*G);voidFloyd(MGraph*G);voidSearch(MGraph*G);intLocateVex(MGraph*G,char*v);MGraph*CreatUDN(MGraph*G);voidprint(MGraph*G);voidmain(){system("colorsystem("modecon:cols=140lines=130");}voidcmd(){inti;{{casecase2:system("cls");ShortestPath_DIJ(&b);Menu();break;case3:system("cls");Floyd(&b);Menu();break;case4:system("cls");Search(&b);Menu();break;case5:exit(1);break;}}}MGraph{MGraphG;inti,j;strcpy(G.vexs[2].introduction,"strcpy(G.vexs[3].name,"strcpy(G.vexs[3].introduction,"strcpy(G.vexs[9].introduction,"returnG;}//InitGraphendvoidMenu(){printf("\n\n");printf("??????????????????????\n");printf("?1.浏览校园全景printf("?2.查看全部游览路线printf("3.选择出发点和目的地,显示一条最短途径?\n");printf("?4.查看景点信息?\n");printf("?5.退出系统?\n");printf("??????????????????????\n");printf("}voidBrowser(MGraph{intv;printf("?for(v=0;v<G-printf("?%-4d?%-16s?%-58s?\n",G->vexs[v].num,G-printf("\n");printf("?\n");printf("printf("18\n");printf("??????????????????\n");printf("printf("printf("\n");printf("?\n");printf("printf("\n");printf("?\n");printf("printf("西区超市???11号教学楼????????????荷花池}//迪杰斯特拉算法来计算出起点到各个顶点之间的最短途径,v0voidShortestPath_DIJ(MGraph*G){intv,w,i,min,t=0,x,flag=1,v0;intfinal[20],D[20],p[20][20];{if(v0<0||v0>G-{}}for(v=0;v<G-{{}}{}}for(v=0;v<G-{if(v0!=v)printf("%s",G->vexs[v0].name);{if(p[v][w]&&w!=v0)printf("-->%s",G->vexs[w].name);}if(t>G->vexnum-1&&v0!=v)printf("总路线长}}//ShortestPath_DIJendvoidFloyd(MGraph*G){intv,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];for(w=0;w<G-{{}}for(w=0;w<G-}{if(k<0||k>G->vexnum||j<0||j>G-{}}printf("-->%s",G-printf("-->%s",G-printf("总路线长}//FloydvoidSearch(MGraph{intk,flag=1;{if(k<0||k>G-{}printf("?printf("?%-4d?%-16s?%-56s?\n",G->vexs[k].num,G-}//SearchintLocateVex(MGraph*G,char*v)intc=-returnc;}MGraph*CreatUDN(MGraph*G)//{intchar{printf("scanf("%d",&G->vexs-scanf("%s",G->vexs-}for(j=0;j<G-{printf("第%d条边printf("{G-G->arcs[j][i]=G-}}return}voidprint(MGraph{intfor(v=0;v<G-for(w=0;w<G-{printf("?");elseprintf("%-7d",G->arcs[v][w].adj);}}一共有m个女生,有n个男生(且m?n),现要开一种舞会,男女分别编号坐在舞下:#definequeuesizetypedefstruct{charname[20];//定义一种长度为20charsex;char变量sex,用来表达性别,规定m表达男性,f表达女性}person_type;typedefstruct{person_type*qBase;intfront;intrear;voidinit_queue(cir_queue*q){q->qBase=(person_typeif(!q->qBase)//如果q->qBase为0则创立失败,退出程序{exit(-1);//立刻终止程序}q->front=q->rear=NULL;boolfull_queue(cir_queue*q)//为满返回true,否则返回if((q->rear+1)%queuesize==q->front)returntrue;return}boolempty_queue(cir_queue*q)//if(q->front==q->rear)returntrue;return}voiden_queue(cir_queue*q,person_typep)//进队函数,使p{}else{q->qBase[q-q->rear=(q->rear+1)%queuesize;}}person_typede_queue(cir_queue*q)//出队函数,用pperson_typep;if(empty_queue(q))//{}else{p=q->qBase[q-returnp;}}intlength_queue(cir_queue*q)//求循环队列元素个数{returnq->rear-q->frontperson_typequeue_front(cir_queue*q)//{}returnq->qBase[q->front];voiddancepartners(cir_queuefemaledancer,cir_queuemaledancer,intlun)//舞伴配对函数{intmlength_queue(&femaledancer);intn=length_queue(&maledancer);//计算男队人数for(intj=1;j<=lun;++j)//forif(m>n)//{person_typep;person_typeq;person_type printf("第%d轮配对状况for(inti=1;i<=n;++i)//for{q=de_queue(&femaledancer);en_queue(&femaledancer,q);}printf("女队中第一种等待的是}elseif(m<n){person_typep;person_typeq;person_type for(inti=1;i<=m;++i){en_queue(&femaledancer,q);}printf("男队中第一种等待的是}else{person_typep;person_type for(inti=1;i<=m;++i){q=de_queue(&femaledancer);}printf("没有人剩余}}}intgac(intm,intw,intn)//求出与y号女生会在第nintx,z;{if(z>m)z=z-m;}elsex=(w*n-returnx;}void{person_typeinti,num,m,w;printf("输入编号和性别(用m表达男性,用f\n7\nm\n");{}cir_queuemaledancer,femaledancer;//定义两个循环队列构造体init_queue(&femaledancer);//调用init_queue()函数置空队列{p=dancers[i];//构造体整体赋值{}else//男的进队列{}}int{ printf("主菜单printf("1.输出每曲配对状况\n");printf("3.退出 printf("{case1:dancepartners(femaledancer,maledancer,n);break;case2:{int{{printf("他们会在第%d曲跳舞}}case}}}?运算符限定于加、减、乘、除四种运算,请验证体现式与否书写正当,如-*5#include<stdio.h>/*库文献包含*/#include<string.h>/*用于字符串操作*/#include<stdlib.h>/*用于exit函数*/intcheck(charchar*c:输入的字符串若没有,则返回1,intcheck(char{intk=0;{if((*c>='0'&&*c<='1000')||*c=='+'*c=='-'||*c=='*'||*c=='/'*c=='.'||*c=='('||*c==')'{}{printf("inputerror,therehavethecharnotthemathexpressionreturn0;//返回参数,0:}elseif(*c==')')}{printf("inputerror,thereisnothavecorrectbracket'()'!\n");return0;//返回参数,0:字符串中有不符合规定的字符}return1;//返回参数,1:voidmove(char*f,double*s,intchar*f:运算符数组double*s:intp:目前运算符数组位置。传入值p若为则目前符号的数组位置为f[3]=f[3+1].......f[len-2]=f[len-1]f[len-1]='\0';s[i]=s[i+1].......s[len-1]=s[len]voidmove(char*f,double*s,intp){inti=0,len=strlen(f);/*将已经运算过的符号,空出来的位置用背面的符号来填充}f[len-}doubleconvnum(charchar*c:由数字和小数点构成的字符,用以转换成double型的数值。将输入的字符串先将其小数点以前的部分复制到temp[]若有小数点,则将小数点之后的数值,也就是小数部分先进行计算,值存入中计算完毕后,再对整数部分进行计算,值加上小数部分的值,存入numdoubleconvnum(char{doublenum=0.0;doublea=1.0;inti=0,p=0,len=0;chartemp[100];inttempi=0;intintf=1;/*正负符号批示器,若为1则为正数,为,1,此数为负数*/if(c[0]=='-{}for(i=start;i<len;{{}temp[tempi++]=c[i];/*将整数部分复制到temp[]中}{for(i=p+1;i<len;i++)/*将小数部分计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44434-2024空间环境流星雷达技术要求
- GB/T 18916.15-2024工业用水定额第15部分:白酒
- 个体化医学诊疗行业营销策略方案
- 化妆用皮肤调理霜产品供应链分析
- 光通信设备产品供应链分析
- 婴儿尿裤产业链招商引资的调研报告
- 蔬菜盘商业机会挖掘与战略布局策略研究报告
- 玻璃罐细分市场深度研究报告
- 市政供水处理行业相关项目经营管理报告
- 医用柔性内窥镜产业链招商引资的调研报告
- 2 .2.1二次函数图象与性质课件2024-2025学年北师大版数学九年级下册
- 产后骨盆修复讲课
- 人教版数学二年级上册-第7单元(认识时间)认识时间(课件)(共19张课件)
- 美术用品供货商合同模板
- 5.2珍惜师生情谊 课件-2024-2025学年统编版道德与法治七年级上册
- 甘孜州森工集团有限公司招聘笔试题库2024
- GB/T 7341.3-2024电声学测听设备第3部分:短时程测试信号
- 广东省2024年中考数学试卷(含答案)
- 2024年全国职业院校技能大赛中职组(短视频制作赛项)选拔赛试题库(含答案)
- 《唱歌 洋娃娃和小熊跳舞(简谱、五线谱)》课件
- 2024年历年专业英语四级考试真题及答案
评论
0/150
提交评论