学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

10进制小数转换成2进制问题

10进制小数转换成2进制问题

想法是用队列实现
那里出错了?


#include "stdio.h"
#include "stdlib.h"
typedef  int datatype;


typedef struct linknode
{
    datatype info;
    struct linknode *next;
}node;


typedef struct
{
     node *rear,*front;        
        
}queue;
queue *initqueue()
{
      queue *q;
      q=(queue*)malloc(sizeof(queue));
      q->rear=NULL;
      q->front=NULL;
      return q;      
      
      
      
}
queue *insert(queue *q,datatype oPara)
{
     node *p;
     p=(node*)malloc(sizeof(node));
     p->info=oPara;
     p->next=NULL;
     if(q->front==NULL)
     {
      printf("empty");                  
     }
     else
     {
      q->rear->next=p;
      q->rear=p;
     }
     return q;  
      
      
}
void printqueue(queue *q)
{
node *p;
p=q->front;
if(!p)
{
  printf("empty");      
}
else
{
while(p)
{
  printf("%d",p->info);p=p->next;        
}     
}
     
     
}

/*node *push(node *top,datatype oPara)
{
    node *p;
    p=(node*)malloc(sizeof(node));
    p->info=oPara;
    p->next=top;
    top=p;
    return top;


}

void printstack(node *top)
{
    node *p;
    p=top;
    if(!p)printf("empty");
    else{
    while(p){printf("%d",p->info);p=p->next;}
    }
}

void convertint(datatype oPara)
{
    node *top=NULL;
    while(oPara!=0)
    {
        top=push(top,oPara%2);
        oPara=oPara/2;
    }
    printstack(top);

}*/
void convertfloat(float oPara)
{
queue *q=initqueue();
while(oPara!=0.0)
{
  q=insert(q,(int)(oPara*2));
  oPara=oPara*2;
  oPara=oPara-(int)oPara;               
}
printqueue(q);
     
     
     
     
     
}
int main()
{

    
//convertint(5);
    convertfloat(0.1);getchar();



}

TOP

void main()
{

   
//convertint(5);
   convertfloat(0.1); getchar();




}
这样写就没出现错误了  不过结果,,,,,,,.
我复制过去编译的时候也出现了错误 你的程序我在看 好多看的慢

[ 本帖最后由 走一圈 于 2008-5-12 23:21 编辑 ]

TOP

不是编译的错误,是运行的逻辑错误,不断的输出empty,我函数调用只是随便输入0.1测试一下。不知道哪里出错的

TOP

线等,急~~高人解答

TOP

询问一下LZ:十进制小数转二进制的原理是啥?
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

好像是你从来不曾改变那个front指针吧!!!
前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。

TOP

发新话题