Thứ Hai, 4 tháng 1, 2016

Thập phân sangNhị phân

  1. #include
  2. #include
  3. #include
  4. #include
  5. using namespace std;
  6. typedef struct DL
  7. {
  8.     int arg;
  9.     struct DL *next;
  10. }stack;
  11. stack *push(stack*,int);
  12. void doi(stack *,int);
  13. int pop(stack*);
  14. stack *start=NULL;
  15.  
  16.  
  17. /******************main********************************/
  18. int main()
  19. {
  20.     int m;
  21.     printf("\n Nhap so can doi: ");
  22.     scanf("%d",&m);
  23.     doi(start,m);
  24.     printf("\n Day nhi phan thu duoc:\n");
  25.     while(start!=NULL)
  26.     {
  27.         cout<<pop(start)<<"  ";
  28.         start=start->next;
  29.     }
  30.     getch();
  31.     free(start);
  32. }
  33. /***************khoi tao danh sach ngan xep*************************/
  34. stack *push(stack *p,int n)
  35. {
  36.     if(p==NULL)
  37.     {
  38.         p=(stack*)malloc(sizeof(stack));
  39.         p->arg=n;
  40.         p->next=NULL;
  41.     }
  42.     else
  43.     {
  44.         stack *temp;
  45.         temp=(stack*)malloc(sizeof(stack));
  46.         temp->arg=n;
  47.         temp->next=p;
  48.         p=temp;
  49.     }
  50.     return (p);
  51. }
  52.  
  53. /*******************doi tu co so 10 sang co so 2*************************/
  54. void doi(stack *p,int n)
  55. {  
  56.     stack *temp;
  57.     temp=p;
  58.     while(n/2!=0)
  59.     {
  60.         temp=push(temp,n%2);
  61.         n=n/2;
  62.     }
  63.     temp=push(temp,n%2);
  64. }
  65. /*****************in ra tung phan tu trong danh sach********************/
  66. int pop(stack *p)
  67. {
  68.     stack *temp1,*q;
  69.     int a;
  70.     temp1=p;
  71.     a=temp1->arg;
  72.     q=temp1;
  73.     return a;
  74.     free(q);
  75. }

0 nhận xét: