当前位置 博文首页 > L_add的博客:顺序队列实现小数进制转换
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct
{
int data[MAXSIZE];
int front,rear;
}SeqQueue;
int InitQueue(SeqQueue *Q)
{
Q->front=Q->rear=-1;
return 1;
}
int IsEmpty(SeqQueue *Q)
{
if(Q->front==Q->rear)
return 1;
else
return 0;
}
int InQueue(SeqQueue *Q, int x)
{
if(Q->rear<MAXSIZE-1)
{
Q->rear++;
Q->data[Q->rear]=x;
return 1;
}
else
return 0;
}
int OutQueue(SeqQueue *Q)
{
int x;
x=Q->data[Q->front+1];
Q->front++;
return x;
}
int Convert(float n,int r)
{
int x,m=0;
SeqQueue *Q,Q1;
Q=&Q1;
InitQueue(Q);
while(n&&m<10)
{
n*=r;
x=(int)float(n);
InQueue(Q,x);
n-=x;
m++;
}
printf("转换后的%d进制小数是:0.",r);
while(!IsEmpty(Q))
{
x=OutQueue(Q);
printf("%d",x);
}
printf("\n");
return 1;
}
int main()
{
float n;
int r;
printf("输入待转化十进制小数:");
scanf("%f",&n);
printf("输入目标数制:");
scanf("%d",&r);
Convert(n,r);
return 1;
}
cs