欢迎来到天天文库
浏览记录
ID:70586873
大小:13.65 KB
页数:4页
时间:2021-11-23
《十进制二进制转化》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include"stdio.h"#include"stdlib.h"#defineTRUE1#defineFALSE0#defineMAX_SIZE10#defineElemTypeinttypedefstruct{ElemTypeElem[MAX_SIZE];inttop;}STACK;#include"s_h.h"#include<stdio.h>#defineE0.0
2、001//循环队列的实现和运算//循环队列的描述#defineQueueSize100//定义队列最大容量typedefintDataType;//定义队列元素类型typedefstructcirqueue{DataTypedata[QueueSize];//队列元素定义intfront;//队头指针定义intrear;//队尾指针定义intcount;//计数器定义}CirQueue;//置队空voidInitQueue(CirQueue*Q){Q->front=Q->rear=
3、0;Q->count=0;//计数器置0}//判队空intQueueEmpty(CirQueue*Q){returnQ->count==0;//队列无元素为空}//判队满intQueueFull(CirQueue*Q){returnQ->count==QueueSize;//队中元素个数等于QueueSize时队满}//入队voidEnQueue(CirQueue*Q,DataTypex){if(QueueFull(Q)){puts("队满&
4、quot;);exit(0);}//队满上溢Q->count++;//队列元素个数加1Q->data[Q->rear]=x;//新元素插入队尾Q->rear=(Q->rear+1)%QueueSize;//循环意义下将尾指针加1}//出队DataTypeDeQueue(CirQueue*Q){DataTypetemp;if(QueueEmpty(Q)){puts("队空");exit(0);}//队空下溢
5、temp=Q->data[Q->front];Q->count--;//队列元素个数减1Q->front=(Q->front+1)%QueueSize;//循环意义下的头指针加1returntemp;}//取队头元素DataTypeQueueFront(CirQueue*Q){if(QueueEmpty(Q)){puts("队空");exit(0);}returnQ->data[Q-&
6、;gt;front];}//初始化栈voidInitStack(STACK*s){s->top=-1;}//入栈操作voidpush(STACK*s,ElemTypee){if(s->top==MAX_SIZE-1)printf("栈已满,元素不能再进栈!");else{s->top++;s->Elem[s->top]=e;}}//出栈操作voidpop(STACK*s,ElemType*e){if(
7、s->top==-1)printf("栈为空,没有元素可以出栈!");else{*e=s->Elem[s->top];s->top--;}}//进制转换(十进制转换为二进制)voidconvert1(floatn){intflag=0;CirQueueLa;intnum;DataTypee;InitQueue(&La);while(n>=0.001){EnQueue(&
8、La,(int)(n*2));n=n*2-(int)(n*2);}//printf("转换后的二进制数据为:");while(La.count!=0){flag++;if(flag>=6)exit(0);e=DeQueue(&La);printf("%d",e);}printf("");}voidconvert(intn){intm;STACKs;InitStack(&
9、amp;amp;s);while(n!=0){push(&s,n%2);n=n/2;}printf("转换后的二进制数据为:");while(s.top!=-1){pop(&s,&m);printf("%d",m);}printf("%c",'.');}voidmain(){floata,b;//进制转换调用floatj
10、y;in
此文档下载收益归作者所有